set -x
set -e
-if [ "$1" = "" ]; then
+if [ ! "$1" = "thinkpad" ] && [ ! "$1" = "server" ]; then
echo "Need argument."
false
fi
+if [ "$1" = "thinkpad" ] && [ ! "$2" = "X200s" ] && [ ! "$2" = "T450s" ]; then
+ echo "Need Thinkpad type."
+ false
+fi
+if [ "$1" = "server" ] && [ ! "$2" = "personal" ] && [ ! "$2" = "public" ]; then
+ echo "Need server purpose."
+ false
+fi
+if [ "$2" = "personal" ] && [ ! "$3" = "test.plomlompom.com" ] && \
+ [ ! "$3" = "plomlompom.com" ]; then
+ echo "Need server domain"
+ false
+fi
+
+# Some important variables
+if [ "$3" = "plomlompom.com" ]; then
+ hostname="plomlompom"
+elif [ "$3" = "test.plomlompom.com" ]; then
+ hostname="test.plomlompom"
+elif [ "$2" = "public" ]; then
+ hostname="twtxt.plomlompom"
+elif [ "$2" = "X200s" ]; then
+ hostname="X220s"
+elif [ "$2" = "T450s" ]; then
+ hostname="T450s"
+fi
if [ "$1" = "server" ]; then
# Set root pw.
echo 'APT::Install-Recommends "false";' >> /etc/apt/apt.conf.d/99mindeps
echo 'APT::Install-Suggests "false";' >> /etc/apt/apt.conf.d/99mindeps
+# Set hostname and FQDN.
+echo $hostname > /etc/hostname
+hostname $hostname
if [ "$1" = "server" ]; then
- # Set hostname and FQDN.
- echo 'plomlompom' > /etc/hostname
- hostname 'plomlompom'
echo '127.0.0.1 localhost' > /etc/hosts
- ip=`hostname -I`
- echo "$ip plomlompom.com plomlompom" >> /etc/hosts
+ ip=`hostname -I | cut -d " " -f 1`
+ echo "$ip $hostname.com $hostname" >> /etc/hosts
# Call dhclient on startup.
cat > /etc/systemd/system/dhclient.service << EOF
# Package management config, system upgrade.
echo 'deb http://ftp.debian.org/debian/ jessie main contrib non-free' \
- >/etc/apt/sources.list
-echo 'deb http://security.debian.org/ jessie/updates main contrib non-free' \
+ > /etc/apt/sources.list
+echo 'deb http://security.debian.org/ jessie/updates main contrib non-free' \
>> /etc/apt/sources.list
echo 'deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free' \
>> /etc/apt/sources.list
-#echo 'deb http://ftp.debian.org/debian/ testing main contrib non-free' >> /etc/apt/sources.list
-#echo 'deb http://security.debian.org/ testing/updates main contrib non-free' >> /etc/apt/sources.list
-#echo 'deb http://ftp.debian.org/debian/ testing-updates main contrib non-free' >> /etc/apt/sources.list
-#echo 'APT::Default-Release "stable"' >> /etc/apt/apt.conf.d/99defaultrelease
+if [ "$1" = "thinkpad" ]; then
+ echo 'deb http://ftp.debian.org/debian/ jessie-backports main contrib' \
+' non-free' >> /etc/apt/sources.list
+ echo 'deb http://ftp.debian.org/debian/ testing main contrib non-free' \
+ >> /etc/apt/sources.list
+ echo 'deb http://security.debian.org/ testing/updates main contrib' \
+' non-free' >> /etc/apt/sources.list
+ echo 'deb http://ftp.debian.org/debian/ testing-updates main contrib' \
+' non-free' >> /etc/apt/sources.list
+ echo 'APT::Default-Release "stable";' \
+ >> /etc/apt/apt.conf.d/99defaultrelease
+fi
dhclient eth0
apt-get update
apt-get -y dist-upgrade
useradd -m -s /bin/bash plom
rm -rf /home/plom/config
su - plom -c 'git clone http://github.com/plomlompom/config /home/plom/config'
-su plom -c '/home/plom/config/bin/symlink.sh server'
+su plom -c '/home/plom/config/bin/symlink.sh '$1' '$2' '$3
+
+# Allow user to sudo.
+if [ "$1" = "thinkpad" ]; then
+ apt-get -y install sudo
+ adduser plom sudo
+fi
# Set up editor.
mkdir -p .vimbackups
su plom -c 'mkdir -p /home/plom/mail/inbox/{cur,new,tmp}'
su plom -c 'mkdir -p /home/plom/mail/new_inbox/{cur,new,tmp}'
sed -i 's/^delete = true$/delete = false/g' \
- /home/plom/config/dotfiles/user/server/getmail/getmailrc
+ /home/plom/config/dotfiles/user/server/personal/minimal/getmail/getmailrc
DEBIAN_FRONTEND=noninteractive apt-get -y install getmail4 procmail mutt \
postfix maildrop
cp config/systemfiles/main.cf /etc/postfix/main.cf
+ sed -i 's/HOSTNAME/'$hostname.com'/g' /etc/postfix/main.cf
cp config/systemfiles/aliases /etc/aliases
newaliases
service postfix restart
# Set up sound.
usermod -aG audio plom
apt-get -y install alsa-utils
- amixer -c 0 sset Master playback 100% unmute
+ if [ "$2" = "X200s" ]; then
+ amixer -c 0 sset Master playback 100% unmute
+ elif [ "$2" = "T450s" ]; then
+ amixer -c 1 sset Master playback 100% unmute
+ # Re-order souncards so the commonly used one is the first one.
+ echo 'options snd_hda_intel index=1,0' >> /etc/modprobe.d/sound.conf
+ fi
- # Set up window system and OpenGL.
- apt-get -y install xserver-xorg xinit xterm i3 i3status dmenu
+ # Set up window system, i3, redshift.
+ apt-get -y install xserver-xorg xinit xterm i3 i3status dmenu redshift
# Set up OpenGL and hardware acceleration.
+ if [ "$2" = "X200s" ]; then
+ apt-get -y install i965-va-driver
+ elif [ "$2" = "T450s" ]; then
+ apt-get -y -t jessie-backports install xserver-xorg-video-intel
+ fi
apt-get -y install libgl1-mesa-dri
- apt-get -y install i965-va-driver
usermod -aG video plom
# Install xrandr.
# Set up pentadactyl.
apt-get -y install iceweasel
- apt-get -y -t testing install xul-ext-pentadactyl
+ apt-get -y -t jessie-backports install xul-ext-pentadactyl
apt-get -y install vim-gtk
su plom -c 'mkdir -p /home/plom/downloads/'
passwd plom
# Clean up.
-rm jessie_start.sh
+rm jessie_postinstall.sh
# Finalize everything with a reboot.
reboot