Next Version
This commit is contained in:
parent
88dfc7d0d4
commit
aed3d27681
@ -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 <<EOL
|
||||
bind '"' split-window -c "#{pane_current_path}"
|
||||
bind % split-window -h -c "#{pane_current_path}"
|
||||
bind c new-window -c "#{pane_current_path}"
|
||||
EOL
|
||||
|
||||
# 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
|
||||
|
Loading…
Reference in New Issue
Block a user