SLEK
Part one of some notes on automation:
Having tired of keeping ~20 shell accounts up to date with my preferred settings, I made a script to do it. Snippets which other people may find useful are:
Only doing things if an app is installed:
is_installed() {
if type -p $1 > /dev/null ; then
return 0
else
return 1
fi
}
if is_installed mplayer ; then
... do mplayer specific things ...
fi
Outputting large amounts of text from the script into the config file:
cat > ~/.vimrc <<EOD
syntax enable
set autoindent
set autowrite
set nocompatible " Use Vim defaults instead of 100% vi compatibility
set backspace=indent,eol,start " more powerful backspacing
set ruler
set foldmethod=marker
if v:version >= 700
set spelllang=en_gb
set spellfile=~/.vimspell.en_gb.add
set spellfile=~/.vimspell.add
endif
EOD
cat > ~/.inputrc <<EOD
"\e[A": history-search-backward
"\e[B": history-search-forward
set completion-ignore-case On
#set editing-mode vi
set mark-symlinked-directories On
EOD
cat > ~/.bash_logout <<EOD
#!/bin/bash
if [ "\$SHLVL" = 1 ]; then
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi
EOD
chmod +x ~/.bash_logout
Now using those, I have all my important settings stored in one shell script. In order to push settings to another host, I can run "cat slek2.sh | ssh user@host.com", which doesn't even create any temporary files on the other side of the connection \o/
(Note: the post title, and the script, are called "slek", which was originally a typo on "skel", but then got made into "shish's linux enhancement kit". Though it's also tested and working fine on solaris...)
2007-06-01 16:33:59 -0500