Commit 005becea authored by Jondy Zhao's avatar Jondy Zhao

Refine slapos configure scripts.

parent 5826156b
#! /bin/bash
export PATH=/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin:$PATH
function show_error_exit()
{
echo Error: ${1-Error: build slapos failed.}
read -n 1 -p "Press any key to exit..."
exit 1
}
slapos_home=${1-/opt/slapos}
slapos_cache=/opt/download-cache
slapos_url=http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/cygwin-0:/component/slapos/buildout.cfg
......@@ -11,8 +18,9 @@ patch_files=/etc/slapos/patches/slapos-core-format.patch
mkdir -p $slapos_home/log
mkdir -p $slapos_cache
echo "Checking $slapos_cfg ..."
if [[ -r $slapos_cfg ]] ; then
echo "Change $slapos_home/buildout.cfg with "
echo "Change $slapos_cfg:"
echo " extends = ${slapos_url}"
sed -i -e "s%^extends = .*$%extends = ${slapos_url}%g" $slapos_cfg
else
......@@ -22,36 +30,44 @@ extends = ${slapos_url}
download-cache = ${slapos_cache}
prefix = $${buildout:directory}
EOF
echo "$slapos_home/buildout.cfg created."
echo "File $slapos_cfg has been generated."
fi
echo "Checking $slapos_bootstrap ..."
if [[ ! -f $slapos_bootstrap ]] ; then
python -S -c 'import urllib2;print urllib2.urlopen("http://git.erp5.org/gitweb/slapos.core.git/blob_plain/HEAD:/bootstrap.py").read()' > $slapos_bootstrap
echo "$slapos_bootstrap downloaded."
if (! cd $slapos_home ; python -S bootstrap.py) ; then
echo "SlapOS bootstrap failed."
exit 1
fi
echo "Downloading $slapos_bootstrap ..."
python -S -c 'import urllib2;print urllib2.urlopen("http://git.erp5.org/gitweb/slapos.core.git/blob_plain/HEAD:/bootstrap.py").read()' > $slapos_bootstrap ||
show_error_exit "Error: download $slapos_bootstrap"
echo "Downlaod $slapos_bootstrap OK."
else
echo OK.
fi
# cd $slapos_home
if (! cd $slapos_home ; $slapos_home/bin/buildout -v -N) ; then
echo "SlapOS buildout failed."
exit 1
if [[ ! -x $slapos_home/run/buildout ]] ; then
echo "Bootstrap slapos ..."
(cd $slapos_home ; python -S bootstrap.py) || show_error_exit "Error: slapos bootstrap failed."
echo "Bootstrap slapos OK."
fi
echo
echo Start buildout of slapos ...
echo
(cd $slapos_home ; $slapos_home/bin/buildout -v -N) || show_error_exit "Error slapos buildout failed."
# apply patches
for filename in $patch_files ; do
if [[ -r $filename ]] ; then
echo "Apply patch: $filename"
for x in $(find $slapos_home/eggs -name slapos.core-*.egg) ; do
echo " at $x ..."
(cd $x ; patch -f --dry-run -p1 < $filename > /dev/null && \
patch -p1 < $filename && echo " OK.")
for _filename in $patch_files ; do
if [[ -r ${_filename} ]] ; then
echo "Apply patch: ${_filename}"
for _path in $(find $slapos_home/eggs -name slapos.core-*.egg) ; do
echo " at ${_path} ..."
(cd ${_path} ; patch -f --dry-run -p1 < ${_filename} > /dev/null &&
patch -p1 < ${_filename} && echo "OK.")
done
fi
done
echo Build SlapOS successfully.
echo
echo Build slapos node successfully.
echo
read -n 1 -t 60 -p "Press any key to exit..."
exit 0
......@@ -16,28 +16,26 @@
#
function show_error_exit()
{
echo Error: $1
echo Error: ${1-Run post-install script failed.}
read -n 1 -p "Press any key to exit..."
exit 1
}
password_filename=/etc/passwd
echo Checking passwd file ...
echo Checking /etc/passwd ...
if [[ ! -f $password_filename ]] ; then
echo No passwd file found.
mkpasswd -l > $password_filename || show_error_exit "mkpasswd failed"
echo Generate passwd file OK.
mkpasswd -l > $password_filename || show_error_exit "Error: mkpasswd failed"
echo File /etc/passwd has been generated.
else
echo Check passwd file OK.
echo OK.
fi
echo Checking group file ...
echo Checking /etc/group ...
if [[ ! -f /etc/group ]] ; then
echo No group file found.
mkgroup -l > /etc/group || show_error_exit "mkgroup failed"
echo Generate group file OK.
mkgroup -l > /etc/group || show_error_exit "Error: mkgroup failed"
echo File /etc/group has been generated.
else
echo Check group file OK.
echo OK.
fi
# grep -q "^root:" $password_filename
......@@ -51,25 +49,32 @@ fi
# fi
# fi
DEFAULT_SYSTEM_CHARSET=$(ipwin codepage) ||
DEFAULT_SYSTEM_CHARSET=""
if [[ ! -f ~/.minttyrc ]] ; then
echo Creating ~/.minttyrc
cat <<EOF > ~/.minttyrc
echo Checking Windows OEM Codepage ...
_charset=$(ipwin codepage) || _charset=""
echo Windows OEM Codepage is ${_charset}
_filename="~/.minttyrc"
echo Checking ${_filename} ...
if [[ ! -f ${_filename} ]] ; then
echo Creating ${_filename}
cat <<EOF > ${_filename}
BoldAsFont=no
Font=Courier New
FontHeight=16
Scrollbar=none
Locale=C
Charset=${DEFAULT_SYSTEM_CHARSET}
Charset=${_charset}
EOF
echo File ~/.minttyrc created
echo File ${_filename} has been generated.
else
echo OK.
fi
if [[ ! -f /cygtty.bat ]] ; then
echo Creating /cygtty.bat
_filename="/cygtty.bat"
echo Checking ${_filename} ...
if [[ ! -x ${_filename} ]] ; then
cyghome=$(cygpath -w /)
cat <<EOF > /cygtty.bat
cat <<EOF > ${_filename}
@echo off
${cyghome:0:2}
......@@ -77,13 +82,15 @@ chdir ${cyghome}\\bin
start mintty.exe -i /Cygwin-Terminal.ico -
EOF
chmod +x /cygtty.bat
echo File /cygtty.bat created.
chmod +x ${_filename}
echo File ${_filename} has been generated.
else
echo OK.
fi
# Copy rebaseall.bat to /
if [[ ! -f /autorebase.bat ]] ; then
echo Create /autorebase.bat
_filename="/autorebase.bat"
echo Checking ${_filename} ...
if [[ ! -f ${_filename} ]] ; then
cat <<EOF > /autorebase.bat
@echo off
rem Postinstall scripts are always started from the Cygwin root dir
......@@ -91,37 +98,49 @@ rem so we can just call dash from here
path .\bin;%path%
dash /bin/rebaseall -p
EOF
chmod +x /autorebase.bat
echo /autorebase.bat created.
chmod +x ${_filename}
echo File ${_filename} has been generated.
else
echo OK.
fi
# Change format of readme.txt
readme_filepath=$(cygpath -m /)/..
if [[ -f $readme_filepath/Readme.txt ]] ; then
unix2dos $readme_filepath/Readme.txt
echo Change readme.txt to dos format OK.
_filename=$(cygpath -u $(cygpath -m /)/../readme.txt)
if [[ -f ${_filename} ]] ; then
echo Changing $(cygpath -w ${_filename}) as dos format ...
unix2dos ${_filename} && echo OK.
fi
# Remove cygwin services to be sure these services will be configured
# in this cygwin enviroments when there are many cygwin instances
# installed in this computer.
for name in $(cygrunsrv --list) ; do
echo Removing cygservice $name
cygrunsrv -R $name
echo Removing $name service
cygrunsrv -R $name || show_error_exit
echo OK.
done
# Backup slap-runner.html
cp /etc/slapos/scripts/slap-runner.html{,.orig}
_filename=/etc/slapos/scripts/slap-runner.html
if [[ -r ${_filename} ]] ; then
echo Backuping ${_filename} as ${_filename}.orig
cp ${_filename}{,.orig} && echo OK.
else
echo Warning: Missing ${_filename}
fi
# Unzip slapos.tar.gz
if [[ -r /opt/downloads/slapos.tar.gz ]] ; then
echo Extracting slapos.tar.gz
cd /opt
tar xzf /opt/downloads/slapos.tar.gz --no-same-owner ||
show_error_exit "Failed to untar slapos.tar.gz"
echo Extracte slapos.tar.gz OK.
_filename=/opt/downloads/slapos.tar.gz
if [[ -r ${_filename} ]] ; then
echo Extracting ${_filename} ...
(cd /opt ; tar xzf ${_filename} --no-same-owner) || show_error_exit
echo OK.
elif [[ ! -d /opt/slapos ]] ; then
echo Warning: Missing ${_filename}
fi
echo Run post-install script successfully.
echo
echo Run post-install.sh script successfully.
echo
read -n 1 -t 60 -p "Press any key to exit..."
exit 0
......@@ -23,10 +23,10 @@ export PATH=/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin:$PATH
for ifname in $(netsh interface ipv6 show interface | gawk '{ print $5 }') ; do
if [[ "$ifname" == "re6stnet-lo" ]] ; then
echo Removing network connection: $ifname
ipwin remove *msloop re6stnet-lo
ipwin remove *msloop re6stnet-lo && echo OK.
elif [[ "$ifname" == re6stnet* ]] ; then
echo Removing network connection: $ifname
ipwin remove tap0901 $ifname
ipwin remove tap0901 $ifname && echo OK.
fi
done
......@@ -34,10 +34,10 @@ done
# Remove services installed by cygwin,
#
echo Try to kill openvpn process ...
ps -ef | grep -q "/usr/bin/openvpn" && TASKKILL /IM openvpn.exe /F
ps -ef | grep -q "/usr/bin/openvpn" && TASKKILL /IM openvpn.exe /F && echo OK.
for name in $(cygrunsrv --list) ; do
echo Removing cygservice $name
cygrunsrv -R $name
cygrunsrv -R $name && echo OK.
done
#
......@@ -45,33 +45,35 @@ done
#
for name in $(net user) ; do
if [[ "x$name" == x\*slapuser* ]] ; then
echo Remove user: $name
net user $name /delete
echo Removing user: $name
net user $name /delete && echo OK.
elif echo "$name" | grep -q -E "(sshd)|(cyg_server)|(slaproot)" ; then
echo Remove user: $name
net user $name /delete
echo Removing user: $name
net user $name /delete && echo OK.
fi
done
mkpasswd -l > /etc/passwd
echo "Creating /etc/passwd ..."
mkpasswd -l > /etc/passwd && echo OK.
#
# Remove local group installed by slapos node
#
for name in $(net localgroup | sed -n -e "s/^*//p" | sed -e "s/\\s//g") ; do
if [[ "$name" == grp_slapuser* ]] ; then
echo Remove localgroup: $name
net localgroup $name /delete
echo Removing localgroup: $name
net localgroup $name /delete && echo OK.
fi
done
mkgroup -l > /etc/group
echo "Creating /etc/group ..."
mkgroup -l > /etc/group && echo OK.
#
# Remove configure files
#
echo Removing /etc/opt/slapos
rm -rf /etc/opt/slapos/
rm -rf /etc/opt/slapos/ && echo OK.
echo Removing ~/.slapos
rm -rf ~/.slapos
rm -rf ~/.slapos && echo OK.
#
# Remove slapos-configure from windows startup item
......@@ -79,14 +81,16 @@ rm -rf ~/.slapos
slapos_run_key='\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
slapos_run_entry=slapos-configure
echo Removing startup item "$slapos_run_key\\$slapos_run_entry"
regtool -q unset "$slapos_run_key\\$slapos_run_entry"
regtool -q unset "$slapos_run_key\\$slapos_run_entry" && echo OK.
#
# Remove default instance root, because it belong to slapuser, and
# would be removed by the windows uninstaller.
#
[[ -f /srv/slapgrid ]] && echo Removing /srv/slapgrid && rm -rf /srv/slapgrid
[[ -f /srv/slapgrid ]] && echo Removing /srv/slapgrid && rm -rf /srv/slapgrid && echo OK.
echo Run pre-uninstall script successfully.
echo
echo Run pre-uninstall script complete.
echo
read -n 1 -t 60 -p "Press any key to exit..."
exit 0
......@@ -72,10 +72,10 @@ Source: "opt\git\slapos.package\windows\docs\README.cygwin"; DestDir: "{app}"; D
[Icons]
Name: "{commondesktop}\SlapOS"; Filename: "https://www.slapos.org/"; IconFilename: "{app}\cygwin\etc\slapos\images\slapos.ico";
Name: "{group}\Command Console"; Filename: "{app}\cygwin\cygtty.bat"; WorkingDir: "{app}\cygwin\opt\slapos"; IconFilename: "{app}\cygwin\etc\slapos\images\terminal.ico";
Name: "{group}\Configure SlapOS"; Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h never -t ""Configure SlapOS Node"" /etc/slapos/scripts/slapos-configure.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\configure.ico";
Name: "{group}\Configure SlapOS"; Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h error -t ""Configure SlapOS"" /etc/slapos/scripts/slapos-configure.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\configure.ico";
Name: "{group}\SlapOS Runner"; Filename: "{app}\cygwin\etc\slapos\scripts\slap-runner.html"; IconFilename: "{app}\cygwin\etc\slapos\images\manager.ico";
Name: "{group}\SlapOS"; Filename: "https://www.slapos.org/"; IconFilename: "{app}\cygwin\etc\slapos\images\slapos.ico";
Name: "{group}\SlapOS Node"; Filename: "{app}\cygwin\bin\bash.exe"; Parameters: "--login -i /etc/slapos/scripts/slapos-node.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\node.ico";
Name: "{group}\SlapOS Node"; Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h error -t ""SlapOS Node"" /etc/slapos/scripts/slapos-node.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\node.ico";
Name: "{group}\Uninstall SlapOS"; Filename: "{uninstallexe}";
Name: "{group}\User Guide"; Filename: "{app}\user-guide.html";
......@@ -85,7 +85,7 @@ Filename: "{app}\cygwin\bin\bash.exe"; Parameters: "--login -i /etc/slapos/scrip
Filename: "{app}\cygwin\autorebase.bat"; WorkingDir: "{app}\cygwin"; Flags: skipifdoesntexist runhidden;
[UninstallRun]
Filename: "{app}\cygwin\bin\bash.exe"; Parameters: "--login -i /etc/slapos/scripts/pre-uninstall.sh"; WorkingDir: "{app}\cygwin\bin"; Flags: skipifdoesntexist;
Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h never -t ""Uninstall SlapOS"" /etc/slapos/scripts/pre-uninstall.sh"; WorkingDir: "{app}\cygwin\bin"; Flags: skipifdoesntexist;
[UninstallDelete]
Type: filesandordirs; Name: "{app}\cygwin" ;
......
This diff is collapsed.
......@@ -182,7 +182,7 @@ function reset_slapos_connection()
# ======================================================================
function show_error_exit()
{
echo ${1-Error: run Configure Slapos failed.}
echo ${1-Error: configure SlapOS failed.}
read -n 1 -p "Press any key to exit..."
exit 1
} # === show_error_exit() === #
......@@ -213,8 +213,9 @@ slapos_request_password()
_password="${csih_value}"
if [ -z "${_password}" ]
then
csih_error_multi "Exiting configuration. I don't know the password of ${username}."
csih_error_multi "Exiting configuration." "I don't know the password of ${username}."
fi
csih_PRIVILEGED_PASSWORD="${_password}"
} # === slapos_request_password() === #
# ======================================================================
......
#! /bin/bash
source $(/usr/bin/dirname $0)/slapos-include.sh
echo
echo "Start slapos-node script ..."
echo
# -----------------------------------------------------------
# Check all the configure files
......@@ -43,5 +46,8 @@ echo "Creating instance ..."
echo "Sending report ..."
/opt/slapos/bin/slapos node report --verbose
echo
echo "Run slapos-node script successfully."
echo
read -n 1 -t 60 -p "Press any key to exit..."
exit 0
......@@ -67,10 +67,10 @@ Source: "opt\git\slapos.package\windows\docs\README.cygwin"; DestDir: "{app}"; D
[Icons]
Name: "{commondesktop}\SlapOS"; Filename: "https://www.slapos.org/"; IconFilename: "{app}\cygwin\etc\slapos\images\slapos.ico";
Name: "{group}\Command Console"; Filename: "{app}\cygwin\cygtty.bat"; WorkingDir: "{app}\cygwin\opt\slapos"; IconFilename: "{app}\cygwin\etc\slapos\images\terminal.ico";
Name: "{group}\Configure SlapOS"; Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h never -t ""Configure SlapOS Node"" /etc/slapos/scripts/slapos-configure.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\configure.ico";
Name: "{group}\Configure SlapOS"; Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h error -t ""Configure SlapOS"" /etc/slapos/scripts/slapos-configure.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\configure.ico";
Name: "{group}\SlapOS Runner"; Filename: "{app}\cygwin\etc\slapos\scripts\slap-runner.html"; IconFilename: "{app}\cygwin\etc\slapos\images\manager.ico";
Name: "{group}\SlapOS"; Filename: "https://www.slapos.org/"; IconFilename: "{app}\cygwin\etc\slapos\images\slapos.ico";
Name: "{group}\SlapOS Node"; Filename: "{app}\cygwin\bin\bash.exe"; Parameters: "--login -i /etc/slapos/scripts/slapos-node.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\node.ico";
Name: "{group}\SlapOS Node"; Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h error -t ""SlapOS Node"" /etc/slapos/scripts/slapos-node.sh"; WorkingDir: "{app}\cygwin\bin"; IconFilename: "{app}\cygwin\etc\slapos\images\node.ico";
Name: "{group}\Uninstall SlapOS"; Filename: "{uninstallexe}";
Name: "{group}\User Guide"; Filename: "{app}\user-guide.html";
......@@ -81,7 +81,7 @@ Filename: "{app}\cygwin\bin\bash.exe"; Parameters: "--login -i /etc/slapos/scrip
Filename: "{app}\cygwin\autorebase.bat"; WorkingDir: "{app}\cygwin"; Flags: skipifdoesntexist runhidden;
[UninstallRun]
Filename: "{app}\cygwin\bin\bash.exe"; Parameters: "--login -i /etc/slapos/scripts/pre-uninstall.sh"; WorkingDir: "{app}\cygwin\bin"; Flags: skipifdoesntexist;
Filename: "{app}\cygwin\bin\mintty.exe"; Parameters: "-c ~/.minttyrc -h never -t ""Uninstall SlapOS"" /etc/slapos/scripts/pre-uninstall.sh"; WorkingDir: "{app}\cygwin\bin"; Flags: skipifdoesntexist;
[UninstallDelete]
Type: filesandordirs; Name: "{app}\cygwin" ;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment