diff --git a/install-debian.sh b/install-debian.sh index 1740445..55fd685 100755 --- a/install-debian.sh +++ b/install-debian.sh @@ -1,52 +1,91 @@ -#!/bin/bash +#!/usr/bin/env bash +# functions function repository { - add-apt-repository -y ppa:ultradvorka/ppa - add-apt-repository -y ppa:webupd8team/java + add-apt-repository -y ppa:ultradvorka/ppa + add-apt-repository -y ppa:webupd8team/java } function update-upgrade { - apt-get update -y - apt-get upgrade -y + apt-get update -y + apt-get upgrade -y } function common { - # default shell - apt-get install -y sudo tmux mc tree pv vim mosh - # shell - apt-get install -y hh zsh - grep HH_CONFIG /etc/bash.bashrc || hh --show-configuration >> /etc/bash.bashrc - sed 's/\/bin\/bash/\/bin\/zsh/' /etc/passwd > /etc/passwd.new - mv /etc/passwd.new /etc/passwd - wget -O /etc/zsh/newuser.zshrc.recommended http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc - cp /etc/zsh/newuser.zshrc.recommended /root/.zshrc - # diagnostics - apt-get install -y htop iotop iftop nmon powertop stress lm-sensors - # versioning - apt-get install -y git git-gui subversion libapache2-svn - # networking - apt-get install -y nfs-common cifs-utils aircrack-ng openvpn axel wget ethtool mii-tool + # default shell + apt-get install -y sudo tmux mc tree pv vim mosh bash-completion + + # bash shell + apt-get install -y hh + grep HH_CONFIG /etc/bash.bashrc || \ + hh --show-configuration >> /etc/bash.bashrc + + # zsh shell + apt-get install -y zsh + sed 's/\/bin\/bash/\/bin\/zsh/' /etc/passwd > /tmp/passwd + mv -f /tmp/passwd /etc/passwd + rm -f /tmp/passwd + wget -O /etc/zsh/newuser.zshrc.recommended \ + http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc + root_user=$(grep ':0:' /etc/passwd | awk -F':' '{print $6}') + default_user=$(grep ':1000:' /etc/passwd | awk -F':' '{print $6}') + cp -f /etc/zsh/newuser.zshrc.recommended $default_user/.zshrc + cp -f /etc/zsh/newuser.zshrc.recommended $root_user/.zshrc + + # tmux + echo 'if [ "$TMUX" = "" ]; then tmux; fi' | cat - $default_user/.zshrc > \ + /tmp/.zshrc && mv /tmp/.zshrc $default_user/.zshrc + echo 'if [ "$TMUX" = "" ]; then tmux; fi' | cat - $root_user/.zshrc > \ + /tmp/.zshrc && mv /tmp/.zshrc $root_user/.zshrc + + # diagnostics + apt-get install -y htop iotop iftop nmon powertop stress lm-sensors \ + gddrescue smartmontools kpartx + + # programming + apt-get install -y git subversion libapache2-svn build-essential + + # networking + apt-get install -y nfs-common cifs-utils aircrack-ng openvpn axel \ + wget ethtool fping + + # misc. tools + apt-get install -y apt-file aptitude hexedit manpages-de } function common-end { - # configure system - apt-get install -y console-data keyboard-configuration manpages-de - sensors-detect + # configure system + apt-get install -y console-data console-setup locales \ + keyboard-configuration tzdata + dpkg-reconfigure console-data console-setup locales \ + keyboard-configuration tzdata + + # run programs + apt-file update + sensors-detect } function client-gui { - # programs - apt-get install -y firefox firefox-locale-de thunderbird thunderbird-locale-de \ - keepassx filezilla vlc gparted wireshark kate - # IDE - apt-get install -y eclipse - # OpenJDK - apt-get install -y openjdk-6-jdk openjdk-6-source openjdk-6-demo openjdk-6-doc \ - openjdk-6-jre-headless openjdk-6-jre-lib - apt-get install -y openjdk-7-jdk openjdk-7-source openjdk-7-demo openjdk-7-doc \ - openjdk-7-jre-headless openjdk-7-jre-lib - # Oracle Java - apt-get install -y oracle-java7-installer oracle-java8-installer + # programs + apt-get install -y firefox firefox-locale-de thunderbird \ + thunderbird-locale-de keepassx filezilla vlc gparted \ + wireshark kate + + # IDE + apt-get install -y eclipse + + # OpenJDK + apt-get install -y openjdk-6-jdk openjdk-6-source openjdk-6-demo \ + openjdk-6-doc openjdk-6-jre-headless openjdk-6-jre-lib + apt-get install -y openjdk-7-jdk openjdk-7-source openjdk-7-demo \ + openjdk-7-doc openjdk-7-jre-headless openjdk-7-jre-lib + apt-get install -y icedtea-7-plugin + + # Oracle Java + apt-get install -y oracle-java7-installer oracle-java8-installer + + # misc. tools + apt-get install -y git-gui bless } function client-gui-end { @@ -55,25 +94,28 @@ function client-gui-end { } function server-gui { - # programs - apt-get install -y firefox firefox-locale-de thunderbird thunderbird-locale-de \ - filezilla gparted wireshark kate - # ssh - apt-get install -y openssh-server + # programs + apt-get install -y firefox firefox-locale-de thunderbird \ + thunderbird-locale-de filezilla gparted wireshark kate + + # ssh + apt-get install -y openssh-server } function server-cli { - # ssh - apt-get install -y openssh-server + # ssh + apt-get install -y openssh-server } +# check if root if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" 1>&2 exit 1 fi +# choose plattform PS3='Please enter your system ' -options=("client-gui" "server-cli" "server-gui" "Quit") +options=("client-gui" "server-cli" "server-gui" "quit") select opt in "${options[@]}" do case $opt in @@ -87,7 +129,7 @@ do break ;; "server-cli") - repository + repository update-upgrade common server-cli @@ -95,13 +137,15 @@ do break ;; "server-gui") - repository + repository update-upgrade common server-gui common-end break ;; - *) echo invalid option;; + *) + echo invalid option + ;; esac done