diff --git a/doinst.sh b/doinst.sh index f9cb8a5..298aee8 100644 --- a/doinst.sh +++ b/doinst.sh @@ -2,11 +2,15 @@ config() { NEW="$1" OLD="`dirname $NEW`/`basename $NEW .new`" + ORIGMD5="$2" # If there's no config file by that name, mv it over: if [ ! -r $OLD ]; then mv $NEW $OLD elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy rm $NEW + elif [ "`cat $OLD | md5sum`" = "$ORIGMD5 -" ]; then + mv $OLD $OLD.orig + mv $NEW $OLD fi # Otherwise, we leave the .new copy for the admin to consider... } diff --git a/etc/profile b/etc/profile new file mode 100644 index 0000000..9e15f6c --- /dev/null +++ b/etc/profile @@ -0,0 +1,69 @@ +# /etc/profile: This file contains system-wide defaults used by +# all Bourne (and related) shells. + +# Set the values for some environment variables: +export MINICOM="-c on" +export MANPATH=/usr/local/man:/usr/man +export HOSTNAME="`cat /etc/HOSTNAME`" +export LESSOPEN="|lesspipe.sh %s" +export LESS="-M" + +# If the user doesn't have a .inputrc, use the one in /etc. +if [ ! -r "$HOME/.inputrc" ]; then + export INPUTRC=/etc/inputrc +fi + +# Set the default system $PATH: +PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" + +# I had problems with the backspace key using 'eval tset' instead of 'TERM=', +# but you might want to try it anyway instead of the section below it. I +# think with the right /etc/termcap it would work. +# eval `tset -sQ "$TERM"` + +# Set TERM to linux for unknown type or unset variable: +if [ "$TERM" = "" -o "$TERM" = "unknown" ]; then + TERM=linux +fi + +# Set ksh93 visual editing mode: +if [ "$SHELL" = "/bin/ksh" ]; then + VISUAL=emacs +# VISUAL=gmacs +# VISUAL=vi +fi + +# Set a default shell prompt: +#PS1='`hostname`:`pwd`# ' +if [ "$SHELL" = "/bin/pdksh" ]; then + PS1='! $ ' +elif [ "$SHELL" = "/bin/ksh" ]; then + PS1='! ${PWD/#$HOME/~}$ ' +elif [ "$SHELL" = "/bin/zsh" ]; then + PS1='%n@%m:%~%# ' +elif [ "$SHELL" = "/bin/ash" ]; then + PS1='$ ' +else + PS1='\u@\h:\w\$ ' +fi +PS2='> ' +export PATH DISPLAY LESS TERM PS1 PS2 + +# Default umask. A umask of 022 prevents new files from being created group +# and world writable. +umask 022 + +# Notify user of incoming mail. This can be overridden in the user's +# local startup file (~/.bash.login or whatever, depending on the shell) +if [ -x /usr/bin/biff ]; then + biff y 2> /dev/null +fi + +# Append any additional sh scripts found in /etc/profile.d/: +for profile_script in /etc/profile.d/*.sh ; do + if [ -x $profile_script ]; then + . $profile_script + fi +done +unset profile_script + diff --git a/etc/profile.orig b/etc/profile.orig new file mode 100644 index 0000000..8c5df4d --- /dev/null +++ b/etc/profile.orig @@ -0,0 +1,79 @@ +# /etc/profile: This file contains system-wide defaults used by +# all Bourne (and related) shells. + +# Set the values for some environment variables: +export MINICOM="-c on" +export MANPATH=/usr/local/man:/usr/man +export HOSTNAME="`cat /etc/HOSTNAME`" +export LESSOPEN="|lesspipe.sh %s" +export LESS="-M" + +# If the user doesn't have a .inputrc, use the one in /etc. +if [ ! -r "$HOME/.inputrc" ]; then + export INPUTRC=/etc/inputrc +fi + +# Set the default system $PATH: +PATH="/usr/local/bin:/usr/bin:/bin:/usr/games" + +# For root users, ensure that /usr/local/sbin, /usr/sbin, and /sbin are in +# the $PATH. Some means of connection don't add these by default (sshd comes +# to mind). +if [ "`id -u`" = "0" ]; then + echo $PATH | grep /usr/local/sbin 1> /dev/null 2> /dev/null + if [ ! $? = 0 ]; then + PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH + fi +fi + +# I had problems with the backspace key using 'eval tset' instead of 'TERM=', +# but you might want to try it anyway instead of the section below it. I +# think with the right /etc/termcap it would work. +# eval `tset -sQ "$TERM"` + +# Set TERM to linux for unknown type or unset variable: +if [ "$TERM" = "" -o "$TERM" = "unknown" ]; then + TERM=linux +fi + +# Set ksh93 visual editing mode: +if [ "$SHELL" = "/bin/ksh" ]; then + VISUAL=emacs +# VISUAL=gmacs +# VISUAL=vi +fi + +# Set a default shell prompt: +#PS1='`hostname`:`pwd`# ' +if [ "$SHELL" = "/bin/pdksh" ]; then + PS1='! $ ' +elif [ "$SHELL" = "/bin/ksh" ]; then + PS1='! ${PWD/#$HOME/~}$ ' +elif [ "$SHELL" = "/bin/zsh" ]; then + PS1='%n@%m:%~%# ' +elif [ "$SHELL" = "/bin/ash" ]; then + PS1='$ ' +else + PS1='\u@\h:\w\$ ' +fi +PS2='> ' +export PATH DISPLAY LESS TERM PS1 PS2 + +# Default umask. A umask of 022 prevents new files from being created group +# and world writable. +umask 022 + +# Notify user of incoming mail. This can be overridden in the user's +# local startup file (~/.bash.login or whatever, depending on the shell) +if [ -x /usr/bin/biff ]; then + biff y 2> /dev/null +fi + +# Append any additional sh scripts found in /etc/profile.d/: +for profile_script in /etc/profile.d/*.sh ; do + if [ -x $profile_script ]; then + . $profile_script + fi +done +unset profile_script + diff --git a/rocket-config.SlackBuild b/rocket-config.SlackBuild index b7e7dc3..906f2a3 100755 --- a/rocket-config.SlackBuild +++ b/rocket-config.SlackBuild @@ -15,12 +15,11 @@ mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh -find $CWD/etc -type f -printf '%P\n' | while read config; do +find $CWD/etc -type f ! -name '*.orig' -printf '%P\n' | while read config; do echo Installing /etc/$config install -Dm644 $CWD/etc/$config $PKG/etc/$config.new - echo config etc/$config.new >> $PKG/install/doinst.sh + echo config etc/$config.new $(cat $CWD/etc/$config.orig | md5sum | cut -d ' ' -f 1) >> $PKG/install/doinst.sh done cd $PKG -/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz - +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz diff --git a/slack-desc b/slack-desc index dd2c513..48d7be9 100644 --- a/slack-desc +++ b/slack-desc @@ -9,11 +9,11 @@ rocket-config: rocket-config (my configuration files) rocket-config: rocket-config: This package contains my custom system configuration, -rocket-config: to be updated through slackpkg. -rocket-config: -rocket-config: -rocket-config: -rocket-config: +rocket-config: to be updated through slackpkg. rocket-config: +rocket-config: If it detects a default config file, it will be replaced, +rocket-config: and the original will be saved with the .orig extension. +rocket-config: Consider removing the .orig files, or restore them when removing +rocket-config: this package. rocket-config: rocket-config: