2 # Copyright (C) 2007 - 2021 Steve Youngs <steve@sxemacs.org>
4 # What lies here is a collection of handy bash shell functions and
5 # aliases that make life a little easier for pkgusr.
10 if [ -z "$arg" ]; then
14 (conf) less ${HOME}/configure.err ;;
15 (install) less ${HOME}/install.err ;;
16 (check) less ${HOME}/check.err ;;
17 (make) less ${HOME}/make.err ;;
18 (upd) less ${HOME}/upd.err ;;
19 (ver) less ${HOME}/verupd.err ;;
20 (all) less ${HOME}/*.err ;;
27 if [ -z "$arg" ]; then
31 (conf) less ${HOME}/configure.log ;;
32 (install) less ${HOME}/install.log ;;
33 (check) less ${HOME}/check.log ;;
34 (make) less ${HOME}/make.log ;;
35 (upd) less ${HOME}/upd.log ;;
36 (ver) less ${HOME}/verupd.log ;;
37 (all) less ${HOME}/*.log ;;
44 if [ -z "$arg" ]; then
48 (conf) less ${HOME}/configure.{err,log} ;;
49 (install) less ${HOME}/install.{err,log} ;;
50 (check) less ${HOME}/check.{err,log} ;;
51 (make) less ${HOME}/make.{err,log} ;;
52 (upd) less ${HOME}/upd.{err,log} ;;
53 (ver) less ${HOME}/verupd.{err,log} ;;
54 (all) less ${HOME}/*.{err,log} ;;
61 if [ -z "$arg" ]; then
64 grep --colour=always '^\*\*\*' ${HOME}/install.${arg}|less
70 if [ -z "$arg" ]; then
73 grep --colour=always '^\*\*\*' ${HOME}/check.${arg}|less
79 if [ -z "$arg" ]; then
82 grep --colour=always '^\*\*\*' ${HOME}/make.${arg}|less
87 for log in configure make check install upd verupd; do
88 [[ -f ${HOME}/${log}.err ]] && rm -v ${HOME}/${log}.err
89 [[ -f ${HOME}/${log}.log ]] && rm -v ${HOME}/${log}.log
96 sed -i "s|\(Version: \).*$|\1${arg}|" ${HOME}/.project
97 echo -n "Version updated... "
98 grep --colour Version:.*$ ${HOME}/.project
103 local top=$(grep -n "^Install Notes:$" ${HOME}/.project|cut -d: -f1)
104 local bot=$(grep -n "^General Notes:$" ${HOME}/.project|cut -d: -f1)
105 sed -n ${top},${bot}p ${HOME}/.project|less
110 local top=$(grep -n "^General Notes:$" ${HOME}/.project|cut -d: -f1)
111 local bot=$(grep -n "^CONTENTS:$" ${HOME}/.project|cut -d: -f1)
112 sed -n ${top},${bot}p ${HOME}/.project|less
121 if [ -z "${fname}" ]; then
122 echo No filename specified >&2
126 type=$(file ${fname}|cut -d' ' -f2)
135 if lzmainfo ${fname} &>/dev/null; then
138 printf "Unknown file type: %s\n" $type >&2
153 if [ -z "${fname}" ]; then
154 echo No filename specified >&2
158 type=$(file ${fname}|cut -d' ' -f2)
162 (gzip) opts=ztvvvf ;;
163 (bzip2) opts=jtvvvf ;;
164 (xz|XZ) opts=Jtvvvf ;;
166 # lzma. Here because lzmainfo is too stupid
167 if lzmainfo ${fname} &>/dev/null; then
170 printf "Unknown file type: %s\n" $type >&2
176 tar ${opts} ${fname}|less
179 ## Check if there is a newer build script, maybe update.
180 # NOTE: Updating needs SXEmacs. It'll work in XEmacs and Emacs too,
181 # but you'll need to change build-update() accordingly.
184 if [ -x $(type -p sxemacs) ]; then
185 sxemacs -l /etc/pkgusr/bld-update.el
187 echo *** Sorry, you do not have SXEmacs installed.
188 echo *** Copying the new build script to ~/build-$(date +%Y%m%d)
189 cp -v /etc/pkgusr/skel-package/build \
190 ${HOME}/build-$(date +%Y%m%d)
196 local sysb=/etc/pkgusr/skel-package/build
197 local pkgb=${HOME}/build
198 local sysbv=$(${sysb} -V|awk '/build:/ {print $2;}')
199 local pkgbv=$(${pkgb} -V|awk '/build:/ {print $2;}')
201 if [ ${sysb} -nt ${pkgb} ]; then
202 echo '*****************************************'
204 echo '* B u i l d S c r i p t U p d a t e *'
205 echo '* A v a i l a b l e *'
207 echo '*****************************************'
208 echo ' Your version:' ${pkgbv}
209 echo ' Available Version:' ${sysbv}
211 echo 'For a SXEmacs based interactive update, run: "build-update"'
212 echo 'To turn this notice off, set $CHECKUPDATES to: "0"'
214 echo -n 'Press [RETURN] to continue...'
219 ## Convenience to allow existing pkgusrs to update their git
223 install -vdm755 ${HOME}/.config/git &&
224 ln -svf /etc/pkgusr/gitconfig ${HOME}/.config/git/config &&
225 # Nuke the old ~/.gitconfig
226 rm -v ${HOME}/.gitconfig 2>/dev/null || true
231 alias srepo='grep --colour Repo_Location:.*$ ${HOME}/.project'
232 alias rawrepo='srepo|cut -d" " -f2|tr -d "<>"'
233 alias trepo='grep --colour Repo_Type:.*$ ${HOME}/.project'
234 alias web='grep --colour Web_Site:.*$ ${HOME}/.project'
235 alias rawweb='web|tr -s " "|cut -d" " -f3|tr -d "<>"'
237 alias alogs='ls -l ${HOME}/*.{err,log}'
238 alias lerr='ls -l ${HOME}/*.err'
239 alias llog='ls -l ${HOME}/*.log'
241 ## As of 2021-01-18 nano (v5.5) seems FUBAR'd
242 alias ebld='vi ${HOME}/build'
243 alias epro='vi ${HOME}/.project'
244 alias ebp='vi -a ${HOME}/{build,.project}'
245 # alias ebld='nano -w ${HOME}/build'
246 # alias epro='nano -w ${HOME}/.project'
247 # alias ebp='nano -w ${HOME}/{build,.project}'
248 alias deps='grep --colour "Deps: " ${HOME}/.project'
249 alias listp='pinky -l $(whoami)|less'
257 alogs List of build logs (showing size)
258 lerr List just the error logs
259 llog List just the .log logs
260 verr [LOG] Display LOG, which can be:
261 \`conf' -- configure.err
262 \`check' -- check.err
263 \`install' -- install.err
267 \`all' -- all error logs (default)
268 vlog [LOG] Same as for \`verr', but for the .log files.
269 verrlog [LOG] Same as for \`verr', but displays both the .err,
271 dlog Removes all build logs
272 instg {err|log} Greps install.err (default) or install.log for
273 pkgusr notifications ("*** some message")
274 chkg {err|log} Greps check.err (default) or check.log for
275 pkgusr notifications ("*** some message")
276 makeg {err|log} Greps make.err (default) or make.log for
277 pkgusr notifications ("*** some message")
279 Package Notes/Content:
281 ipkg Displays the \`Install Notes'. (alias: ipkg)
282 gpkg Displays the \`General Notes'. (alias: gpkg)
283 listp Displays the entire package info (piped through less(1))
284 srepo Display the package's source repo location.
285 rawrepo Output just the repo URL (to use with lynx, curl, etc)
286 trepo Display the type of repo (tla, git, svn, mercurial etc)
287 web Display the package's homepage URL.
288 rawweb Output just the web URL (to use with lynx etc)
289 deps Display the package's dependencies
293 xtar [TARBALL] Extract TARBALL, automatically choosing the appropriate
295 vtar [TARBALL] List the contents of TARBALL, automatically choosing
296 appropriate options and piping through less(1).
300 ebld Edit the build script.
301 epro Edit the .project file.
302 ebp Edit the build script and the .project file.
303 updver [NEWVER] Updates the version in the .project. It MUST be
304 quoted to protect it from shell expansion.
306 Miscellaneous Bobs & Bits:
308 prep_git Sets up ~/.config/git/config
309 In the normal course of events you shouldn't need to
310 use this as it happens during login if it is needed.