# rationale.
SUPPRESSLOCALEDIR=1
+## Build script update checks
+# If this is set to `1' (one) a check is done to see if there is a
+# newer build script available that the pkgusr could update to. If an
+# update is available a message is printed to stdout with instructions
+# of how to proceed.
+#
+# Override this in ~/.pkgusrrc.
+CHECKUPDATES=1
+
### export everything
export LC_ALL PATH LESS LESSCHARSET LESSOPEN TZ PKG_CONFIG_PATH QTDIR
-export SUPPRESSLOCALEDIR
+export SUPPRESSLOCALEDIR CHECKUPDATES
# Make prompt reflect that we are a package user.
export PROMPT_COMMAND='PS1="[pkgusr (\u)] \w> "'
# Go to the home directory whenever we su to a package user.
cd
+# Maybe check if the build script can be updated.
+if [ ${CHECKUPDATES} -eq 1 ]; then
+ checkupdates
+fi
+
# Local variables:
# sh-basic-offset: 4
done|sort -u|tr -s '\n' ' '
}
+## Check if there is a newer build script, maybe update.
+# NOTE: Updating needs SXEmacs. It'll work in XEmacs and Emacs too,
+# but you'll need to change build-update() accordingly.
+build-update()
+{
+ if [ -x $(type -p sxemacs) ]; then
+ sxemacs -l /etc/pkgusr/bld-update.el
+ fi
+}
+
+checkupdates()
+{
+ local sysb=/etc/pkgusr/skel-package/build
+ local pkgb=${HOME}/build
+ local sysbv=$(${sysb} -V|awk '/build:/ {print $2;}')
+ local pkgbv=$(${pkgb} -V|awk '/build:/ {print $2;}')
+
+ if [ ${sysb} -nt ${pkgb} ]; then
+ echo '*****************************************'
+ echo '* *'
+ echo '* B u i l d S c r i p t U p d a t e *'
+ echo '* A v a i l a b l e *'
+ echo '* *'
+ echo '*****************************************'
+ echo ' Your version:' ${pkgbv}
+ echo ' Available Version:' ${sysbv}
+ echo
+ echo 'For a SXEmacs based interactive update, run: "build-update"'
+ echo 'To turn this notice off, set $CHECKUPDATES to: "0"'
+ echo
+ echo -n 'Press [RETURN] to continue...'
+ read junk
+ fi
+}
+
## Aliases
# Repos/Websites
alias srepo='grep --colour Repo_Location:.*$ ${HOME}/.project'
--- /dev/null
+;; bld-update.el --- Update pkgusr build scripts via ediff -*- Emacs-Lisp -*-
+
+;; Copyright (C) 2014 Steve Youngs
+
+;; Author: Steve Youngs <stevesteveyoungs.com>
+;; Maintainer: Steve Youngs <stevesteveyoungs.com>
+;; Created: <2014-03-10>
+;; Time-stamp: <Monday Mar 10, 2014 17:35:01 steve>
+
+;; This file is part of pkgusr.
+
+;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;; notice, this list of conditions and the following disclaimer.
+;;
+;; 2. Redistributions in binary form must reproduce the above copyright
+;; notice, this list of conditions and the following disclaimer in the
+;; documentation and/or other materials provided with the distribution.
+;;
+;; 3. Neither the name of the author nor the names of any contributors
+;; may be used to endorse or promote products derived from this
+;; software without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+;; IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+;; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;; DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+;; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+;;; Commentary:
+;;
+;; Just calls #'ediff-files to update build scripts. Probably way
+;; over the top, but it is the best and easiest way I know of to
+;; incrementally and interactively apply a diff.
+
+;;; Code:
+(require 'ediff)
+(defvar pkgusr-build-script
+ (expand-file-name "build" (user-home-directory))
+ "The pkgusr's build script.")
+
+(defvar system-build-script
+ (expand-file-name "build"
+ (paths-construct-path
+ (list "/etc" "pkgusr" "skel-package")))
+ "The build script new pkgusrs get.")
+
+(ediff-files pkgusr-build-script system-build-script)
+
+;;; bld-update.el ends here