Last active
February 11, 2024 06:44
-
-
Save PaxJaromeMalues/8d261bb26a4d45a1659564b93ad07ec2 to your computer and use it in GitHub Desktop.
ordersprinter script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Script-Name: ordersprinter-ubuntu-installer | |
# Description: Version of Stefan Pichels original script at https://www.ordersprinter.de/ubuntuinstaller.txt adapted for use with AutoOrderSprinter | |
# OrderSprinter: 2.8.0-AOS | |
# Author: Jan-Philipp Jürgens | |
# Version: 1.2 | |
# Last changed: 11FEB24 | |
# Permissions: This script IS in need of root permissions! | |
FLAG_FILE=/var/run/autoordersprinter/posinst-completed-DO_NOT_REMOVE | |
POSINST_FILE=/usr/local/bin/ordersprinter-ubuntu-installer.sh | |
TEMP_SUDOERS_FILE=/etc/sudoers.d/posinst-temp | |
PAM_COMMON_SESSION_FILE=/etc/pam.d/common-session | |
if [ ! -f $FLAG_FILE ]; then | |
################################################ | |
# # | |
# START DES ODERSPRINTER INSTALLATIONSSKRIPTES # | |
# # | |
################################################ | |
db="ordersprinter" | |
dbuser="os_" | |
tabprefix="os_" | |
# Die TSE sollte unter keinen Umständen direkt beschrieben werden! | |
# Wenn man die Device-Adresse (sdxx) statt einem Label (Name des Mediums bei dessen Formatierung) angibt, darf man | |
# den Stick später nicht in einen anderen USB-Port stecken! | |
backupdevice="\/dev\/sdb1" | |
# Währung | |
currency="Euro" | |
# TSEConnector-Einstellungen: | |
# --------------------------- | |
# Nach dem Einstecken der TSE zeigt sich diese wie ein normales Laufwerk, der üblicherweise in /mnt eingebunden wird. | |
# Aber um das Skript möglichst einfach an andere Linux-Distros anpassen zu können, kann der Mountpoint hier eingestellt | |
# werden. Manche Distros nutzen z.B. /media zum Einbinden. Zudem können zukünftige TSEs andere Namen haben. | |
# Wird als Wert "auto" statt einem Pfad angegeben, so sucht sich der TSEConnector selbstständig den Pfad zur TSE. | |
tsemountpoint="auto" | |
# Die TSE kann vom TSEConnector simulatiert werden. In diesem Fall ist der tsemodus auf "simulate" zu setzen. | |
tsemodus="normal" | |
# Der TSEConnector ist als Webserver aufgesetzt, der auf den mit tseport festgelegten Port lauscht. Wenn dieser Wert | |
# geändert wird, so muss dies später in der Konfiguration der Kernapplikation händisch angepasst werden. | |
# Dieser Port muss auf dem System möglicherweise in den Firewalleinstellungen erst freigeschaltet werden, damit | |
# Kernapplikation und TSEConnector miteinander kommunizieren können. | |
tseport=8000 | |
########################################################################################## | |
# | |
# Ende des Bereichs, in dem ein unerfahrener Anwender Anpassungen vornehmen sollte. | |
# | |
######################################################################################### | |
# OrderSprinter-Version | |
version="2_8_0" | |
# Warnhinweis an den Anwender mit der Möglichkeit des Abbruchs | |
echo "Dieses Skript ist für die Ausführung auf einem frisch aufgesetzten" | |
echo "Ubuntu-System 20.04 geschrieben worden. Bei anderen Ubuntu-Versionen" | |
echo "müssen möglicherweise Pfade im Skript angepasst werden!" | |
echo "Man kann es auch auf einem bereits in Benutzung befindlichen Ubuntu-" | |
echo "System verwenden, allerdings kann es dabei zu Datenverlust kommen:" | |
echo "" | |
echo "Das Installationsskript löscht möglicherweise bereits vorhandene Daten" | |
echo "im Dokumentenverzeichnis des Webservers. Außerdem werden Daten in" | |
echo "verschiedene Verzeichnisse geschrieben (z.B. /usr/local/bin) und" | |
echo "Konfigurationsdateien abgeändert (z.B. php.ini), und Services" | |
echo "angelegt." | |
echo "Es wird eine Datenbank angelegt und eine möglicherweise bereits" | |
echo "DB-Konfiguration sowie eine Datenbank mit Namen '$db'" | |
echo "überschrieben!" | |
echo "" | |
echo "Es können andere als die vordefinierten Zugangsdaten zur Datenbank" | |
echo "verwendet werden. Dazu sind die Werte für die Variablen in diesem " | |
echo "Skript anzupassen (dbadminpassword,db,dbuser,dbusertpassword," | |
echo "tabprefix)." | |
echo "Außerdem ist vermutlich die Voreinstellung für die Geräteadresse des" | |
echo "Backup-Mediums anzupassen." | |
echo "" | |
echo "Das Skript muss als root ausgeführt werden!" | |
echo "" | |
if [[ $EUID -ne 0 ]]; then | |
echo "Das Skript wurde nicht mit root-Rechten gestartet. Die Ausführung muss abgebrochen werden." | |
exit 1 | |
fi | |
# Frage wegen Installationsumfang | |
installcore=0 | |
echo "Kernapplikation installieren? Alle anderen Installationsoptionen basieren" | |
echo "darauf, dass die Kernapplikation so aufgesetzt ist, wie im Skript festgelegt." | |
read -p "Soll das Skript die Kernapplikation installieren (j/n)?" installcore | |
case "$installcore" in | |
j|J ) installcore=1;; | |
* ) installcore=0;; | |
esac | |
installprintserver=0 | |
read -p "Soll das Skript den Javaprintserver für einen lokalen USB-angeschlossenen Drucker installieren (j/n)?" installprintserver | |
case "$installprintserver" in | |
j|J ) installprintserver=1;; | |
* ) installprintserver=0;; | |
esac | |
printersizeA=32 | |
if [[ $installprintserver -eq 1 ]] | |
then | |
read -p " --> Handelt es sich bei dem USB-Drucker um einen 80mm-Drucker (j/n)?" printersizeA | |
case "$printersizeA" in | |
j|J ) printersizeA=41;; | |
* ) printersizeA=32;; | |
esac | |
fi | |
installprintserverB=0 | |
read -p "Soll das Skript den Javaprintserver für CUPS in einer weiteren Instanz 2 installieren (j/n)?" installprintserverB | |
case "$installprintserverB" in | |
j|J ) installprintserverB=1;; | |
* ) installprintserverB=0;; | |
esac | |
printersizeB=32 | |
if [[ $installprintserverB -eq 1 ]] | |
then | |
read -p " --> Handelt es sich bei dem CUPS-Drucker um einen 80mm-Drucker (j/n)?" printersizeB | |
case "$printersizeB" in | |
j|J ) printersizeB=41;; | |
* ) printersizeB=32;; | |
esac | |
fi | |
insertsamplecontent=0 | |
read -p "Beispieldaten einfügen (Benutzer, Raumplan usw.). Beispieldaten sollten nur in eine frischen Installation eingefügt werden, z.B. im Zusammenhang mit einer Installation des Kernsystems. Einfügen? (j/n)?" samplecontent | |
case "$samplecontent" in | |
j|J ) insertsamplecontent=1;; | |
* ) insertsamplecontent=0;; | |
esac | |
# Frage Benutzer, ob das TSE-Modul installiert werden soll | |
install_tse=0 | |
read -p "TSEConnector einrichten (j/n)?" choice | |
case "$choice" in | |
j|J ) install_tse=1;; | |
* ) install_tse=0;; | |
esac | |
# Frage Benutzer, ob regelmäßiges Backup auf einen angeschlossenen USB-Stick stattfinden soll | |
autobackup=0 | |
read -p "Regelmäßiges nächtliches Backup um 4 Uhr auf angeschlossenen USB-Stick (j/n)?" dobackup | |
case "$dobackup" in | |
j|J ) autobackup=1;; | |
* ) autobackup=0;; | |
esac | |
# Calculate availabe RAM that can be assigned to PHP process | |
ramsize=$(eval "free -t | grep -oP '\d+' | sed '1!d'") | |
avail=$((ramsize/1000-500))M | |
echo "Assigning $avail of memory for PHP processes" | |
# Download der OrderSprinter-Applikation und Entpacken in ein temporäres Verzeichnis | |
echo "Download der OrderSprinter-Suite ($version)" | |
rm -rf /tmp/ordersprinter 2> /dev/null | |
mkdir /tmp/ordersprinter | |
# Get the path in which the script is located. | |
scriptpath="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" | |
if test -d "${scriptpath}/../webapp"; then | |
# script is not moved out of the download, i.e. there is no need to download the software again | |
cp -R ${scriptpath}/../* /tmp/ordersprinter | |
else | |
# Script is standalone -> install unzip if not there already and then download the sources | |
apt-get -qq -y install unzip | |
echo "Download der OrderSprinter Programmsuite..." | |
wget -O /tmp/ordersprinter/os.zip 2>>/dev/null "https://www.ordersprinter.de/ordersprinter-${version}.zip?edition=ubuntu" | |
cd /tmp/ordersprinter | |
echo "Entpacken der OrderSprinter-Suite" | |
unzip -q os.zip | |
fi | |
if [[ $installcore -eq 1 ]] | |
then | |
# Installation der Umgebung | |
echo "Update der Umgebung. Dies wird eine Zeitlang dauern..." | |
echo "Paketlisten neu einlesen und aktualisieren..." | |
apt-get -y update | |
echo "Neue Versionen von Paketen installieren, falls Aktualisierungen vorhanden sind..." | |
apt-get -y upgrade | |
echo "Installation von Webserver und Datenbank..." | |
apt-get -qq -y install unzip apache2 libapache2-mod-php php mariadb-server php-mysql php-gd php-curl php-zip php-xml default-jre | |
while true; do | |
echo "Es wird empfohlen, dass gleich durch Sie eingegebene Passwort zu notieren!" | |
echo "" | |
read -s -p "Bitte geben Sie ein Passwort für den root Account der mysql Datenbank '$db' ein: " dbadminpassword_init | |
echo "" | |
read -s -p "Bitte wiederholen Sie das Passwort: " dbadminpassword_retyped | |
echo "" | |
if [ "$dbadminpassword_init" != "$dbadminpassword_retyped" ]; then | |
printf "/n/nDie Passwörter stimmen NICHT überein, bitte versuchen Sie es erneut!/n" | |
continue | |
else | |
dbadminpassword=$dbadminpassword_retyped | |
break | |
fi | |
done | |
mysqladmin -u root password $dbadminpassword | |
# Konfigurationswerte | |
PHPVERSION=$(ls /etc/php) | |
echo "Anpassen einiger Konfigurationswerte" | |
sed -i -e "s/memory_limit.*/memory_limit = $avail/" /etc/php/${PHPVERSION}/apache2/php.ini | |
sed -i -e "s/max_execution_time.*/max_execution_time = 600/" /etc/php/${PHPVERSION}/apache2/php.ini | |
sed -i -e "s/post_max_size.*/post_max_size = 10000M/" /etc/php/${PHPVERSION}/apache2/php.ini | |
sed -i -e "s/upload_max_filesize.*/upload_max_filesize = 10000M/" /etc/php/${PHPVERSION}/apache2/php.ini | |
service apache2 reload | |
sleep 3s | |
while true; do | |
echo "Es wird empfohlen, dass gleich durch Sie eingegebene Passwort zu notieren!" | |
echo "" | |
read -s -p "Bitte geben Sie ein Passwort für den user Account der mysql Datenbank '$db' ein: " dbuserpassword_init | |
echo "" | |
read -s -p "Bitte wiederholen Sie das Passwort: " dbuserpassword_retyped | |
echo "" | |
if [ "$dbuserpassword_init" != "$dbuserpassword_retyped" ]; then | |
printf "/n/nDie Passwörter stimmen NICHT überein, bitte versuchen Sie es erneut!/n" | |
continue | |
else | |
dbuserpassword=$dbuserpassword_retyped | |
break | |
fi | |
done | |
echo "Create database" | |
mysql -uroot -p$dbadminpassword -e "DROP DATABASE IF EXISTS $db"; | |
mysql -uroot -p$dbadminpassword -e "CREATE DATABASE $db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci"; | |
mysql -uroot -p$dbadminpassword -e "DROP USER IF EXISTS $dbuser@localhost"; | |
mysql -uroot -p$dbadminpassword -e "CREATE USER $dbuser@localhost IDENTIFIED BY '$dbuserpassword'"; | |
mysql -uroot -p$dbadminpassword -e "GRANT ALL ON $db.* TO $dbuser@localhost"; | |
echo "Copy files to webserver doc directory" | |
rm -r /var/www/html/index.html | |
cp -R /tmp/ordersprinter/webapp/* /var/www/html/ | |
chown -R www-data:www-data /var/www/html | |
chmod -R u+w /var/www/html | |
cd /var/www/html/php | |
echo "Konfiguration des Datenbankzugangs" | |
sed -i -e "s/defined('MYSQL_USER').*/defined('MYSQL_USER') || define ('MYSQL_USER', '$dbuser');/" config.php | |
sed -i -e "s/defined('MYSQL_PASSWORD').*/defined('MYSQL_PASSWORD') || define ('MYSQL_PASSWORD', '$dbuserpassword');/" config.php | |
sed -i -e "s/defined('MYSQL_DB').*/defined('MYSQL_DB') || define ('MYSQL_DB', '$db');/" config.php | |
sed -i -e "s/defined('TAB_PREFIX').*/defined('TAB_PREFIX') || define ('TAB_PREFIX', '$tabprefix');/" config.php | |
echo "Default-Installation der Kernapplikation" | |
wget -O /tmp/loginstall.txt 2>>/dev/null "http://localhost/install/installer.php?command=defaultinstall&db=${db}&dbuser=${dbuser}&dbpass=${dbuserpassword}&prefix=${tabprefix}" | |
# Währung | |
mysql -uroot -p$dbadminpassword -e "UPDATE $db.${tabprefix}config SET setting='${currency}' WHERE name='currency'"; | |
mysql -uroot -p$dbadminpassword -e "UPDATE $db.${tabprefix}histconfig SET setting='${currency}' WHERE setting='Euro'"; | |
fi | |
if [[ $insertsamplecontent -eq 1 ]] | |
then | |
echo "Beispieldaten einfügen" | |
wget -O /tmp/logsamplecontent.txt 2>>/dev/null "http://localhost/install/installer.php?command=defaultinsertsamplecontent&db=${db}&dbuser=${dbuser}&dbpass=${dbuserpassword}&prefix=${tabprefix}" | |
fi | |
echo "Löschen des Installationsverzeichnisses" | |
rm -r /var/www/html/install | |
if [[ $installprintserver -eq 1 ]] | |
then | |
echo "Druckserver einrichten" | |
cp -R /tmp/ordersprinter/printserver/javaprinter /usr/local/bin | |
if [[ $printersizeA -eq 41 ]] | |
then | |
sed -i -e 's/\"printersize\".*/\"printersize\" : 41,/' /usr/local/bin/javaprinter/config.json | |
else | |
sed -i -e 's/\"printersize\".*/\"printersize\" : 32,/' /usr/local/bin/javaprinter/config.json | |
fi | |
echo "#!/bin/sh" > /usr/local/bin/javaprinter.bat | |
echo "/usr/bin/java -jar /usr/local/bin/javaprinter/javaprinter.jar -configfile=/usr/local/bin/javaprinter/config.json &" >> /usr/local/bin/javaprinter.bat | |
chmod +x /usr/local/bin/javaprinter.bat | |
printf "[Unit]\n" > /etc/systemd/system/javaprinter.service | |
printf "Description=OrderSprinter-Javaprinter\n\n" >> /etc/systemd/system/javaprinter.service | |
printf "[Service]\n" >> /etc/systemd/system/javaprinter.service | |
printf "Type=forking\n" >> /etc/systemd/system/javaprinter.service | |
printf "ExecStart=/usr/local/bin/javaprinter.bat\n\n" >> /etc/systemd/system/javaprinter.service | |
printf "[Install]\n" >> /etc/systemd/system/javaprinter.service | |
printf "WantedBy=multi-user.target\n" >> /etc/systemd/system/javaprinter.service | |
systemctl enable javaprinter.service | |
systemctl start javaprinter | |
fi | |
if [[ $installprintserverB -eq 1 ]] | |
then | |
echo "Druckserver Instanz 2 einrichten" | |
cp -R /tmp/ordersprinter/printserver/javaprinter /usr/local/bin | |
cp /usr/local/bin/javaprinter/config.json /usr/local/bin/javaprinter/config2.json | |
sed -i -e "s/\"instance\" : 1/\"instance\" : 2/" /usr/local/bin/javaprinter/config2.json | |
if [[ $printersizeB -eq 41 ]] | |
then | |
sed -i -e 's/\"printersize\".*/\"printersize\" : 41,/' /usr/local/bin/javaprinter/config2.json | |
else | |
sed -i -e 's/\"printersize\".*/\"printersize\" : 32,/' /usr/local/bin/javaprinter/config2.json | |
fi | |
echo "#!/bin/sh" > /usr/local/bin/javaprinter2.bat | |
echo "/usr/bin/java -jar /usr/local/bin/javaprinter/javaprinter.jar --mode=cups -configfile=/usr/local/bin/javaprinter/config2.json &" >> /usr/local/bin/javaprinter2.bat | |
chmod +x /usr/local/bin/javaprinter2.bat | |
printf "[Unit]\n" > /etc/systemd/system/javaprinter2.service | |
printf "Description=OrderSprinter-Javaprinter-CUPS\n\n" >> /etc/systemd/system/javaprinter2.service | |
printf "[Service]\n" >> /etc/systemd/system/javaprinter2.service | |
printf "Type=forking\n" >> /etc/systemd/system/javaprinter2.service | |
printf "ExecStart=/usr/local/bin/javaprinter2.bat\n\n" >> /etc/systemd/system/javaprinter2.service | |
printf "[Install]\n" >> /etc/systemd/system/javaprinter2.service | |
printf "WantedBy=multi-user.target\n" >> /etc/systemd/system/javaprinter2.service | |
systemctl enable javaprinter2.service | |
systemctl start javaprinter2 | |
fi | |
if [[ $install_tse -eq 1 ]] | |
then | |
# TSE | |
echo "TSE Setup" | |
cp -R /tmp/ordersprinter/tseconnector /usr/local/bin | |
echo "#!/bin/sh" > /usr/local/bin/tseconnector.bat | |
echo "/usr/bin/java -Djava.library.path=/usr/local/bin/tseconnector/swissbit/nativelibs/linux64 -jar /usr/local/bin/tseconnector/swissbit/tseconnector.jar --pass=123 --port=${tseport} --supplier=swissbit --mountpoint=${tsemountpoint} --mode=${tsemodus} --loglevel=1 --showlog=1 --tarexportfile=/tmp/tse_export.tar &" >> /usr/local/bin/tseconnector.bat | |
chmod +x /usr/local/bin/tseconnector.bat | |
printf "[Unit]\n" > /etc/systemd/system/tseconnector.service | |
printf "Description=OrderSprinter-TSEConnector\n\n" >> /etc/systemd/system/tseconnector.service | |
printf "[Service]\n" >> /etc/systemd/system/tseconnector.service | |
printf "Type=forking\n" >> /etc/systemd/system/tseconnector.service | |
printf "ExecStart=/usr/local/bin/tseconnector.bat\n\n" >> /etc/systemd/system/tseconnector.service | |
printf "[Install]\n" >> /etc/systemd/system/tseconnector.service | |
printf "WantedBy=multi-user.target\n" >> /etc/systemd/system/tseconnector.service | |
systemctl enable tseconnector.service | |
systemctl start tseconnector | |
# In Deutschland gibt es eine Bonausgabepflicht: | |
mysql -uroot -p$dbadminpassword -e "UPDATE ${db}.${tabprefix}config SET setting='1' WHERE name='forceprint'"; | |
fi | |
if [[ $autobackup -eq 1 ]] | |
then | |
while true; do | |
echo "Es wird empfohlen, dass gleich durch Sie eingegebene Passwort zu notieren!" | |
echo "" | |
read -s -p "Bitte geben Sie einen Zugangscode für das automatische Backup der mysql Datenbank ein: " remoteaccesscode_init | |
echo "" | |
read -s -p "Bitte wiederholen Sie den Zugangscode: " remoteaccesscode_retyped | |
echo "" | |
if [ "$remoteaccesscode_init" != "$remoteaccesscode_retyped" ]; then | |
printf "/n/nDie Eingaben stimmen NICHT überein, bitte versuchen Sie es erneut!/n" | |
continue | |
else | |
remoteaccesscode=$remoteaccesscode_init | |
break | |
fi | |
done | |
echo "Nächtliches Backup einrichten" | |
cp /tmp/ordersprinter/scripts/backup-db-linux.sh /usr/local/bin/ | |
sed -i -e "s/Benutzer/$dbuser/" /usr/local/bin/backup-db-linux.sh | |
sed -i -e "s/DasPasswort/$dbuserpassword/" /usr/local/bin/backup-db-linux.sh | |
sed -i -e "s/123/$remoteaccesscode/" /usr/local/bin/backup-db-linux.sh | |
sed -i -e "s/localhost\/ordersprinter/localhost/" /usr/local/bin/backup-db-linux.sh | |
sed -i -e "s/mount=.*/mount=\"${backupdevice}\"/" /usr/local/bin/backup-db-linux.sh | |
mysql -uroot -p$dbadminpassword -e "UPDATE ${db}.${tabprefix}config SET setting=MD5('$remoteaccesscode') WHERE name='remoteaccesscode'"; | |
# Passe die Crontab an, damit der Job jede Nacht um 4 Uhr läuft | |
cp /etc/crontab /tmp/crontab | |
# Entferne einen Eintrag von einem möglicherweise vorherigen Scriptlauf | |
sed -i -e "/.*backup-db-linux.*/d" /tmp/crontab | |
# Lösche letzte Zeile (sollte ein Hash sein) | |
sed '$d' /tmp/crontab > /tmp/crontab_without_last_line; mv /tmp/crontab_without_last_line /tmp/crontab | |
# Füge neuen Eintrag hinzu (nächtliche Sicherung um 4 Uhr) | |
echo "0 4 * * * root /usr/local/bin/backup-db-linux.sh > /dev/null 2>&1" >> /tmp/crontab | |
echo "#" >> /tmp/crontab | |
cp /tmp/crontab /etc/crontab | |
fi | |
printf "\n\nInstallation abgeschlossen entsprechend der Auswahl der Komponenten:\n" | |
printf "======================================================================\n" | |
if [[ $installcore -eq 1 ]] | |
then | |
printf "Installation der Kernkomponente:\n" | |
printf " Aufruf der OrderSprinter-Applikation im Browser über http://localhost bzw. http://${HOSTNAME}\n" | |
printf " Alle eingerichteten Benutzer haben das Passwort 123, ebenso ist der Kassenbon-Stornocode 123.\n" | |
fi | |
if [[ $installprintserver -eq 1 ]] | |
then | |
printf "Der Druckserver für den lokalen USB-Drucker ist eingerichtet und startet automatisch. Je nach\n " | |
printf "Drucker und Anbindung kann eine weitere Konfiguration erforderlich sein.\n" | |
fi | |
if [[ $installprintserverB -eq 1 ]] | |
then | |
printf "Der Druckserver für den CUPS-Drucker ist eingerichtet und startet automatisch. Ohne Änderungen der Batch-Datei wird\n" | |
printf "der als Default eingerichtete CUPS-Drucker angesprochen. Je nach Drucker und Anbindung kann\n" | |
printf "eine weitere Konfiguration erforderlich sein.\n" | |
printf "Diese Druckerinstanz hat die Nummer 2, d.h. dies muss beim Mappen in der Administrationsansicht\n" | |
printf "unter *Druckerinstanzen* berücksichtigt werden.\n" | |
fi | |
if [[ $install_tse -eq 1 ]] | |
then | |
printf "Der TSEConnector befindet sich im normalen Arbeitsmodus. Für einen Simulationsbetrieb muss die\n" | |
printf "Befehlszeile in /usr/local/bin/tseconnector.bat abgeändert werden (mode=simulate).\n" | |
fi | |
if [[ $autobackup -eq 1 ]] | |
then | |
printf "Nächtliches Backup wurde eingerichtet für Gerät ${backupdevice}\n" | |
fi | |
############################################### | |
# # | |
# ENDE DES ODERSPRINTER INSTALLATIONSSKRIPTES # | |
# # | |
############################################### | |
printf "\n\nStarte Säuberung für Ubuntu Subiquity Bestandteile\n" | |
printf "==================================================\n" | |
if [ test -f $POSINST_FILE ]; then | |
rm $POSINST_FILE | |
fi | |
if [ test -f $TEMP_SUDOERS_FILE ]; then | |
rm $TEMP_SUDOERS_FILE | |
fi | |
if [ test -f $PAM_COMMON_SESSION_FILE ]; then | |
sed -i -e '$d' $PAM_COMMON_SESSION_FILE | |
fi | |
touch $FLAG_FILE | |
printf "\n\nSäuberung für Ubuntu Subiquity Bestandteile beendet\n" | |
printf "Ende des Installations-Scripts\n" | |
printf "\nDas System sollte nun wegen den Änderungen an PAM neu gestartet werden\n" | |
read -p "\nMöchten Sie das System jetzt neu starten (j/N)?" restartq | |
case "$restartq" in | |
j|J ) sysrestart=1;; | |
"" ) sysrestart=0;; | |
* ) sysrestart=0;; | |
esac | |
if [[ $sysrestart -eq 1 ]]; then | |
systemctl reboot | |
fi | |
else | |
echo "This installation script has already been run, ending." | |
exit 0 | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment