diff options
Diffstat (limited to 'linux/bin')
| -rwxr-xr-x | linux/bin/installiere_neo | 62 | 
1 files changed, 36 insertions, 26 deletions
| diff --git a/linux/bin/installiere_neo b/linux/bin/installiere_neo index 019809c..bd907e6 100755 --- a/linux/bin/installiere_neo +++ b/linux/bin/installiere_neo @@ -29,43 +29,45 @@  # Dieses Skript wird mit der Zeit verbessert werden.  # ============================== + +# colours in the Bash  B="\033[30m"  R="\033[31m"  G="\033[32m" -datei() { +datei() {  # cut files from the complete file ›installiere_neo‹  	grep -A10000 "#neo: $1 --- Beginn" installation | grep -B10000 "#neo: $1 --- Ende" | grep -v "#neo:"  } -erzeuge() { +erzeuge() {  # create directories, files and entries  	case $1 in  	d) # directory -		if [ -d $2 ] +		if [ -d $2 ]				# if already exists  		then  			echo -e "Das Verzeichnis ${R}$2${B} gibt es bereits – wird verwendet…"  		else  			echo -e "Erstelle $2" -			mkdir $2 +			mkdir $2			# create  		fi  		;;  	f) # file -		if [ -f $3 ] +		if [ -f $3 ]				# if already exists  		then  			echo -e "Die Datei ${R}$3${B} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite -			if [ "$overwrite" = "J" ] +			if [ "$overwrite" = "J" ]	# overwrite?  			then  				echo "Datei $3 wird überschrieben!" -				rm -f $3 +				rm -f $3		# remove if user wants to overwrite  			else  				echo -e "Datei ${R}$3${B} gibt es schon → Installation abgebrochen"  				exit  			fi  		fi -		echo "Erstelle Datei $3" +		echo "Erstelle Datei $3"		# create  		datei $2 > $3  		;;  	l) # soft link -		if [ -d $HOME/bin/ ] +		if [ -d $HOME/bin/ ]			# $HOME/bin has to exist!  		then  			echo "Verzeichnis $HOME/bin/ gefunden"  		else @@ -74,30 +76,30 @@ erzeuge() {  			echo "Istallation wird abgebrochen."  			exit  		fi -		if [ -f $HOME/bin/$2 ] +		if [ -f $HOME/bin/$2 ]			# if already exists  		then  			echo -e "Datei ${R}$HOME/bin/$2${B} gibt es bereits – soll die bestehende Datei überschrieben werden? \c"; read -p "[J,N] " -e overwrite -			if [ "$overwrite" = "J" ] +			if [ "$overwrite" = "J" ]	# overwrite?  			then  				echo "Datei $2 wird überschrieben!" -				rm -f $HOME/bin/$2 +				rm -f $HOME/bin/$2	# remove if user wants to overwrite  			else  				echo -e "Datei ${R}$2${B} gibt es schon → Installation abgebrochen"  				exit  			fi  		fi  		echo "Erstelle Link $HOME/bin/$2" -		ln -s $HOME/neo/$2 $HOME/bin +		ln -s $HOME/neo/$2 $HOME/bin		# create  		;;  	esac  } -entferne(){ +entferne(){  # remove files for uninstall option  	echo "Entferne $1"  	rm $1 || echo -e "${R}Konnte die Datei $1 nicht entfernen!${B}"  } -deinstall() { #remove all NEO-directories and files +deinstall() {  #remove all directories, files and entries made by ›installiere_neo‹  	echo  	echo  	rmfromprofile @@ -112,12 +114,14 @@ deinstall() { #remove all NEO-directories and files  	rmdir $HOME/neo/ || echo -e "${R}Konnte das Verzeichenis $HOME/neo/ nicht entfernen!${B}"  } -rmfromprofile() { +rmfromprofile() {  # remove the entry in $HOME/.profile  	grep -v "^\# NEO:$" $HOME/.profile | grep -v "asdf   \# mit" > $HOME/profile.neo.tmp  	rm /$HOME/.profile  	mv $HOME/profile.neo.tmp $HOME/.profile  } + +# *** main program ***  clear  echo  echo "   *** NEO – Ergonomie und Zeichenvielfalt ***" @@ -126,6 +130,7 @@ echo  echo " Ihr System wird untersucht…"  echo +# check for an existing neo configuration  if [ -f "${NEO_CONFIG}" ]; then  	. "${NEO_CONFIG}" || die "Failed to source ${NEO_CONFIG}"  elif [ -f "${HOME}"/.neorc ]; then @@ -134,6 +139,7 @@ elif [ -f /etc/neo.conf ]; then  	. /etc/neo.conf || die "Failed to source /etc/neo.conf"  else +# no configuration file found → install NEO  	echo "Bislang gibt es kein vollständig konfiguriertes NEO auf Ihrem System"  	echo  	echo "Sie haben folgende Möglichkeiten:" @@ -151,8 +157,8 @@ else  	echo  	installoption="" -	while [ ! $installoption ] -	do +	while [ ! $installoption ]			# choose between QWERTZ or NEO as standard +	do						# switch with ›asdf‹ and ›uiae‹  		echo  		read -p "Wählen Sie eine Option [1,2]: " -e installoption  	        case $installoption in @@ -185,6 +191,9 @@ else  	echo  	echo +# *** main installation process *** +# creating a directory $HOME/neo with NEO files +# linking ›asdf‹ and ›uiae‹ scripts to $HOME/bin  	erzeuge d $HOME/neo  	erzeuge f xmodmap $HOME/neo/neo_de.xmodmap  	erzeuge f console $HOME/neo/neo.map @@ -196,7 +205,7 @@ else  	erzeuge l uiae  	erzeuge f neorc $HOME/.neorc - +# entry in $HOME/.profile with NEO or QWERTZ as standard keyboard layout after login  	case $installoption in   	2)  		echo @@ -218,16 +227,17 @@ else  		;;  	esac - -	cd $HOME/neo +# starting NEO layout  	echo  	echo "Die Belegung wird nun auf NEO geändert…"	 +	cd $HOME/neo  	./asdf xmodmap  	echo -e "Um zu QWERTZ zurückzukehren, genügt es, die Abrollbewegung ${G}uiae${B} einzugeben."  	exit  fi +# configuration file found → delete/deinstall options  	echo "Es gibt auf Ihrem System bereits eine Konfiguration für NEO."  	echo  	echo "Sollte NEO nur für diesen Benutzer installiert sein, haben folgende Möglichkeiten:" @@ -244,8 +254,8 @@ fi  	echo  	deinstalloption="" -	while [ ! $deinstalloption ] -	do +	while [ ! $deinstalloption ]			# choose between deleting NEO as standard layout or delete NEO at all +	do						# if deleted as standard layout only, ›asdf‹ is still working  		echo  		read -p "Wählen Sie eine Option [1,2]: " -e deinstalloption  	        case $deinstalloption in @@ -254,7 +264,7 @@ fi                          echo -e "Alle zuvor von ${G}installiere_neo${B} vorgenommen Änderungen am System werden gelöscht!"  			echo  			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen" -			deinstall +			deinstall			# full deinstallation                          ;;                  1)                          echo @@ -263,8 +273,8 @@ fi  			echo  			read -n1 -p "Drücke eine Taste um fortzufahren oder STRG+C zum Abbrechen"  			echo -			rmfromprofile -			echo >> $HOME/.profile +			rmfromprofile			# alter the entry in $HOME/.profile; first: remove old entry +			echo >> $HOME/.profile		# write the new entry  			echo "# NEO:" >> $HOME/.profile  			echo "# asdf   # mit einem # am Zeilenanfang bleibt QWERTZ das Standardlayout, sonst ist es NEO" >> $HOME/.profile                          ;; | 
