Kommentare hinzugefügt

feature/programmer
pascal 14 years ago
parent 68bb782adf
commit d8e087b735
  1. 62
      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
;;

Loading…
Cancel
Save