diff --git a/src/remaster.sh b/src/remaster.sh index ac587f4..e4fe7b1 100755 --- a/src/remaster.sh +++ b/src/remaster.sh @@ -43,172 +43,6 @@ fi fi } -##################################################################################### -################## M o d e s ######################################################## -##################################################################################### - -#remaster.sh renew -function main_renew() { - #Start LOG - tail -f "$log_file" --pid="$$" & - - chroot_path="`mktemp -d`" - iso_extr_dir="`mktemp -d`" - - echo "Remaster LOG `date '+%Y-%m-%d'`" > "$log_file" - echo "MODE: renew" >> "$log_file" - echo "HOST: `hostname`" >> "$log_file" - echo >> "$log_file" - - echo "### S e t t i n g s ###" >> "$log_file" - echo "#CD/DVD" >> "$log_file" - echo "iso_source=\"$iso_source\"" >> "$log_file" - echo "iso_aim=\"$iso_aim\"" >> "$log_file" - echo "iso_lable=\"$iso_lable\"" >> "$log_file" - echo >> "$log_file" - - echo "#Filesystem (for pxe)" >> "$log_file" - echo "squashfs_path=\"$squashfs_path\"" >> "$log_file" - echo >> "$log_file" - - echo "#Network" >> "$log_file" - echo "proxy_host=\"$proxy_host\"" >> "$log_file" - echo "proxy_port=\"$proxy_port\"" >> "$log_file" - echo "domain=\"$domain\"" >> "$log_file" - echo "nameserver=\"$nameserver\"" >> "$log_file" - echo >> "$log_file" - - echo "#remaster_script" >> "$log_file" - echo "project=\"$project\"" >> "$log_file" - echo >> "$log_file" - - echo "log_file=\"$log_file\"" - echo "log_mail_aim=\"$log_mail_aim\"" - echo "log_mail_subject=\"$log_mail_subj >> "$log_file"ect\"" - echo "" - - echo "#Sonstiges" >> "$log_file" - echo "tools_list=\"$tools_list\"" >> "$log_file" - echo $'\n' >> "$log_file" - - echo "### Enviroment ###" - echo "iso_extr_dir=\"$iso_extr_dir\"" >> "$log_file" - echo "chroot_path=\"$chroot_path\"" >> "$log_file" - #env >> "$log_file" - echo $'\n\n' >> "$log_file" - - echo $'### R U N ... ###\n' >> "$log_file" - - #1. Set and Check Enviroment - check_user >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - check_dependency >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - check_config >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - check_update >> "$log_file" - - # 2. Entpacke ISO - iso_extract "$iso_source" "$iso_extr_dir" >> "$log_file" - - # 3. Entpacken der Dateien des Live-Systems - filesystem_img="`find "$iso_extr_dir" -name filesystem.squashfs`" - [ -e "$filesystem_img" ] || { - echo "### ERROR ### Image \"$iso_source\" has no \"filesystem.squashfs\"" >> "$log_file" - on_exit 15 >> "$log_file" - } - - filesystem_extract "$filesystem_img" "$chroot_path" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - # 4. Vorbereiten für chroot-Umgebung: - - chroot_initial "$chroot_path" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - # 5. Setzen der Netzwerk-Einstellungen: - [ -n "$proxy_host" ] && { - proxy_enable "$chroot_path" "$proxy_host" "$proxy_port" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - } - - dns_set "$chroot_path" "$domain" "$nameserver" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - # 6. Updaten von Desinfec't: - os_update "$chroot_path" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - # 7. Installation optionaler Tools: - - tools_add "$chroot_path" "$tools_list" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - #addo ClamAV to conky_info - sed -i 's/# ${color white}ClamAV/ ${color white}ClamAV/g' "$chroot_path/etc/skel/.conkyrc" - - chroot_clean "$chroot_path" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - # 8. Manuelle Aktionen - deaktiviert - - #echo "Now You Have TIME to do something MANUALY!" - #echo "enter in shell: #> chroot $chroot_path /bin/bash" - #chroot $chroot_path /bin/bash - #echo "Are You Finisch? Then Press [ENTER]" - - #config xrdp to start xfce - echo '#!/bin/sh' > "$chroot_path"/etc/xrdp/startwm.sh - echo "export LANG=\"de_DE.UTF-8\"" >> "$chroot_path"/etc/xrdp/startwm.sh - echo "startxfce4" >> "$chroot_path"/etc/xrdp/startwm.sh - - # 9. Umount - Chroot Umgebung auflösen - - chroot_umount "$chroot_path" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - #Überprüfen ob alles ausgehängt wurde - [ "`chroot_is_mounted "$chroot_path"`" == "true" ] && { - echo "### ERROR ### Cant Unmount Chroot!" >> "$log_file" - on_exit 21 >> "$log_file" - } - - # 10. Packen und Ersetzen der Dateien des Live-Systems - rm "$filesystem_img" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - filesystem_pack "$chroot_path" "$filesystem_img" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - # wenn iso gewünscht - [ "$iso_aim" != "" ] && { - iso_create "$chroot_path" "$iso_extr_dir" "$iso_aim" "$iso_lable" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - } - - # wenn filesystem gewünscht - [ "$squashfs_path" != "" ] && { - #wen bereits forhanden dann löschen - [ -f "$squashfs_path" ] && rm "$squashfs_path" - cp "$filesystem_img" "$squashfs_path" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - chmod 666 "$squashfs_path" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - } - - chmod 666 "$iso_aim" "$filesystem_img" >> "$log_file" - - workspace_erase "$iso_extr_dir/" "$chroot_path/" >> "$log_file" - error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" - - - on_exit 0 -} - ##################################################################################### ################## F u n c t i o n s ################################################ ##################################################################################### @@ -286,5 +120,162 @@ source /proj/desinfect.17 ########################################################### ################# P r o c e s s ... ####################### ########################################################### -#wenn kein modus angegebnen: default modus -main_renew + +#Start LOG +tail -f "$log_file" --pid="$$" & + +chroot_path="`mktemp -d`" +iso_extr_dir="`mktemp -d`" + +echo "Remaster LOG `date '+%Y-%m-%d'`" > "$log_file" +echo "MODE: renew" >> "$log_file" +echo "HOST: `hostname`" >> "$log_file" +echo >> "$log_file" + +echo "### S e t t i n g s ###" >> "$log_file" +echo "#CD/DVD" >> "$log_file" +echo "iso_source=\"$iso_source\"" >> "$log_file" +echo "iso_aim=\"$iso_aim\"" >> "$log_file" +echo "iso_lable=\"$iso_lable\"" >> "$log_file" +echo >> "$log_file" + +echo "#Filesystem (for pxe)" >> "$log_file" +echo "squashfs_path=\"$squashfs_path\"" >> "$log_file" +echo >> "$log_file" + +echo "#Network" >> "$log_file" +echo "proxy_host=\"$proxy_host\"" >> "$log_file" +echo "proxy_port=\"$proxy_port\"" >> "$log_file" +echo "domain=\"$domain\"" >> "$log_file" +echo "nameserver=\"$nameserver\"" >> "$log_file" +echo >> "$log_file" + +echo "#remaster_script" >> "$log_file" +echo "project=\"$project\"" >> "$log_file" +echo >> "$log_file" + +echo "log_file=\"$log_file\"" +echo "log_mail_aim=\"$log_mail_aim\"" +echo "log_mail_subject=\"$log_mail_subj >> "$log_file"ect\"" +echo "" + +echo "#Sonstiges" >> "$log_file" +echo "tools_list=\"$tools_list\"" >> "$log_file" +echo $'\n' >> "$log_file" + +echo "### Enviroment ###" +echo "iso_extr_dir=\"$iso_extr_dir\"" >> "$log_file" +echo "chroot_path=\"$chroot_path\"" >> "$log_file" +#env >> "$log_file" +echo $'\n\n' >> "$log_file" + +echo $'### R U N ... ###\n' >> "$log_file" + +#1. Set and Check Enviroment +check_user >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + +check_dependency >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + +check_config >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + +check_update >> "$log_file" + +# 2. Entpacke ISO +iso_extract "$iso_source" "$iso_extr_dir" >> "$log_file" + +# 3. Entpacken der Dateien des Live-Systems +filesystem_img="`find "$iso_extr_dir" -name filesystem.squashfs`" +[ -e "$filesystem_img" ] || { + echo "### ERROR ### Image \"$iso_source\" has no \"filesystem.squashfs\"" >> "$log_file" + on_exit 15 >> "$log_file" +} + +filesystem_extract "$filesystem_img" "$chroot_path" >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + +# 4. Vorbereiten für chroot-Umgebung: + +chroot_initial "$chroot_path" >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + +# 5. Setzen der Netzwerk-Einstellungen: +[ -n "$proxy_host" ] && { + proxy_enable "$chroot_path" "$proxy_host" "$proxy_port" >> "$log_file" + error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" +} + +dns_set "$chroot_path" "$domain" "$nameserver" >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + +# 6. Updaten von Desinfec't: +os_update "$chroot_path" >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + +# 7. Installation optionaler Tools: + +tools_add "$chroot_path" "$tools_list" >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + +#addo ClamAV to conky_info +sed -i 's/# ${color white}ClamAV/ ${color white}ClamAV/g' "$chroot_path/etc/skel/.conkyrc" + +chroot_clean "$chroot_path" >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + +# 8. Manuelle Aktionen - deaktiviert + +#echo "Now You Have TIME to do something MANUALY!" +#echo "enter in shell: #> chroot $chroot_path /bin/bash" +#chroot $chroot_path /bin/bash +#echo "Are You Finisch? Then Press [ENTER]" + +#config xrdp to start xfce +echo '#!/bin/sh' > "$chroot_path"/etc/xrdp/startwm.sh +echo "export LANG=\"de_DE.UTF-8\"" >> "$chroot_path"/etc/xrdp/startwm.sh +echo "startxfce4" >> "$chroot_path"/etc/xrdp/startwm.sh + +# 9. Umount - Chroot Umgebung auflösen + +chroot_umount "$chroot_path" >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + +#Überprüfen ob alles ausgehängt wurde +[ "`chroot_is_mounted "$chroot_path"`" == "true" ] && { + echo "### ERROR ### Cant Unmount Chroot!" >> "$log_file" + on_exit 21 >> "$log_file" +} + +# 10. Packen und Ersetzen der Dateien des Live-Systems +rm "$filesystem_img" >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + +filesystem_pack "$chroot_path" "$filesystem_img" >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + +# wenn iso gewünscht +[ "$iso_aim" != "" ] && { + iso_create "$chroot_path" "$iso_extr_dir" "$iso_aim" "$iso_lable" >> "$log_file" + error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" +} + +# wenn filesystem gewünscht +[ "$squashfs_path" != "" ] && { + #wen bereits forhanden dann löschen + [ -f "$squashfs_path" ] && rm "$squashfs_path" + cp "$filesystem_img" "$squashfs_path" >> "$log_file" + error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + + chmod 666 "$squashfs_path" + error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" +} + +chmod 666 "$iso_aim" "$filesystem_img" >> "$log_file" + +workspace_erase "$iso_extr_dir/" "$chroot_path/" >> "$log_file" +error_level="$?"; [ "$error_level" != "0" ] && on_exit $error_level >> "$log_file" + + +on_exit 0