diff --git a/install-debian.sh b/install-debian.sh index a5a9d9c..c6cd09d 100644 --- a/install-debian.sh +++ b/install-debian.sh @@ -1,164 +1,78 @@ #!/usr/bin/env bash -# functions -function repository { - apt-get install -y software-properties-common && ( - 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 -} - -function common { - # get users directory - root_user=$(grep ':0:' /etc/passwd | awk -F':' '{print $6}') - default_user=$(grep ':1000:' /etc/passwd | awk -F':' '{print $6}') - - # default shell - apt-get install -y sudo 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 -i -- 's/\/bin\/bash/\/bin\/zsh/' /etc/passwd - wget -O /etc/zsh/newuser.zshrc.recommended \ - http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc - cp -f /etc/zsh/newuser.zshrc.recommended $default_user/.zshrc - cp -f /etc/zsh/newuser.zshrc.recommended $root_user/.zshrc - ) - - # tmux - apt-get install -y tmux && ( - echo 'if [ "$TMUX" = "" ]; then tmux; fi' | cat - $default_user/.zshrc > \ - /tmp/.zshrc && mv /tmp/.zshrc $default_user/.zshrc - ) - - # diagnostics - apt-get install -y htop iotop iftop nmon powertop stress lm-sensors \ - gddrescue smartmontools kpartx nmap - - # programming - apt-get install -y git subversion libapache2-svn build-essential - - # networking - apt-get install -y nfs-common cifs-utils openvpn axel \ - wget ethtool fping - - # misc. tools - apt-get install -y apt-file aptitude hexedit manpages-de - - # configure vim - touch $root_user/.vimrc $default_user/.vimrc - for config in "filetype plugin indent on" "set tabstop=4" "set shiftwidth=4" \ - "set expandtab" "syntax enable" "set softtabstop=4" \ - "set number" "set showcmd" "set cursorline"; do - grep "$config" $root_user/.vimrc || echo "$config" >> $root_user/.vimrc - grep "$config" $default_user/.vimrc || echo "$config" >> $default_user/.vimrc - done -} - -function common-end { - # 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 - 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 { - # Java Plugin - update-alternatives --config mozilla-javaplugin.so -} - -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 -} - -function server-cli { - # 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 + 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") -select opt in "${options[@]}" -do - case $opt in - "client-gui") - update-upgrade - repository - common - client-gui - common-end - client-gui-end - break - ;; - "server-cli") - update-upgrade - repository - common - server-cli - common-end - break - ;; - "server-gui") - update-upgrade - repository - common - server-gui - common-end - break - ;; - *) - echo invalid option - ;; - esac +# check if debian +if [ ! "$(grep -Ei 'debian|buntu' /etc/*release)" ]; then + echo "This script must be run on a debian system" 1>&2 + exit 1 +fi + +# update system +apt-get update -y +apt-get upgrade -y + +# get users directory +root_user=$(grep ':0:' /etc/passwd | awk -F':' '{print $6}') +default_user=$(egrep '\:100[0-9]\:' /etc/passwd | tail -n 1 | awk -F':' '{print $6}') + +# default shell +apt-get install -y sudo mc tree pv vim bash-completion + +# zsh shell +apt-get install -y zsh && ( + sed -i -- 's/\/bin\/bash/\/bin\/zsh/' /etc/passwd + wget -O /etc/zsh/newuser.zshrc.recommended \ + http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc + cp -f /etc/zsh/newuser.zshrc.recommended $default_user/.zshrc + cp -f /etc/zsh/newuser.zshrc.recommended $root_user/.zshrc +) + +# add tmux auto start +apt-get install -y tmux && ( + echo 'if [ "$TMUX" = "" ]; then tmux; fi' | cat - $default_user/.zshrc > \ + /tmp/.zshrc && mv /tmp/.zshrc $default_user/.zshrc +) + +# diagnostics +apt-get install -y htop iotop iftop nmon powertop stress lm-sensors \ + gddrescue smartmontools kpartx nmap + +# programming +apt-get install -y git build-essential + +# networking +apt-get install -y nfs-common cifs-utils axel wget ethtool fping + +# misc. tools +apt-get install -y apt-file aptitude hexedit manpages-de + +# configure vim +touch $root_user/.vimrc $default_user/.vimrc +for config in "filetype plugin indent on" "set tabstop=4" "set shiftwidth=4" \ + "set expandtab" "syntax enable" "set softtabstop=4" \ + "set number" "set showcmd" "set cursorline"; do + grep "$config" $root_user/.vimrc || echo "$config" >> $root_user/.vimrc + grep "$config" $default_user/.vimrc || echo "$config" >> $default_user/.vimrc done + +# configure tmux +cat > /etc/tmux.conf <