make profile-funcs POSIXly
authorThorsten Glaser <tg@mirbsd.org>
Sat, 3 Dec 2011 16:12:39 +0000 (16:12 +0000)
committerThorsten Glaser <tg@mirbsd.org>
Sat, 3 Dec 2011 16:12:39 +0000 (16:12 +0000)
bash-ksh/profile-funcs [deleted file]
posix/profile-funcs [new file with mode: 0644]

diff --git a/bash-ksh/profile-funcs b/bash-ksh/profile-funcs
deleted file mode 100644 (file)
index 0b34d10..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-# Not complicated enough for copyright.
-
-# RFC2822
-alias dateR='date +"%a, %d %b %Y %H:%M:%S %z"'
-
-test -n "$KSH_VERSION" && alias which='whence -p'
-test -n "$BASH_VERSION" && shopt -s extglob
-
-# man with gnroff on MirPorts
-alias gman='man -C /usr/mpkg/share/groff/man_utf8.conf'
-
-# clear screen
-alias cls='echo -ne \\033c'
-# clear screen, kill ssh-agent, and out
-bye() {                        # cu ;-)
-       [ "$1" = k ] && ssh-agent -k
-       M='\033c'
-       [ $? -ne 0 ] && M='\033c Warning: ssh-agent returned error!\n'
-       echo -n "$M"
-       exit
-       logout
-}
-
-# print disc free stats in a more handy format
-# for wider terminals than 80c, but deals well with LVM
-df() {
-       command df -P "$@" | sed 's/Mounted on/Mountpoint/' | column -t
-}
-
-ddg() {                        # DuckDuckGo Search
-       ${BROWSER:-lynx} "https://duckduckgo.com/?kp=-1&kl=wt-wt&kb=t&kh=1&kj=g2&km=l&ka=monospace&ku=1&ko=s&k1=-1&kv=1&q=$*"
-}
-
-ggs() {                        # Google Search
-       ${BROWSER:-lynx} "http://www.google.com/search?hl=la&pws=0&num=100&safe=off&q=$*"
-}
-ggr() {                        # Google GRoups
-       ${BROWSER:-lynx} "http://groups.google.com/groups?hl=la&pws=0&num=100&safe=off&as_umsgid=$*"
-}
-
-ge() {                 # German English
-       ${BROWSER:-lynx} "http://dict.leo.org/?search=$*"
-}
-gfr() {                        # German Frensch
-       ${BROWSER:-lynx} "http://dict.leo.org/frde?search=$*"
-}
-ges() {                        # German Spanish
-       ${BROWSER:-lynx} "http://dict.leo.org/esde?search=$*"
-}
-espanol() {            # explica en espaƱol
-       lynx -dump --nolist "http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML=2&LEMA=$*"
-}
-
-loadimage() {          # call xloadimage by URI
-       for fi in "$@"; do
-               if [ -e "$fi" ]; then
-                       xloadimage "$fi"
-               else
-                       wget -qO - "$fi" | xloadimage stdin
-               fi
-       done
-}
-
-which rot13 >/dev/null 2>&1 || alias rot13='tr \
-    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ \
-    nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM'
-which hd >/dev/null 2>&1 || hd() {
-       hexdump -e '"%08.8_ax  " 8/1 "%02X " " - " 8/1 "%02X "' \
-           -e '"  |" "%_p"' -e '"|\n"' "$@"
-}
-
-setenv() {
-       eval $1=\$2
-       eval export $1
-}
diff --git a/posix/profile-funcs b/posix/profile-funcs
new file mode 100644 (file)
index 0000000..66ea145
--- /dev/null
@@ -0,0 +1,145 @@
+# Copyright (c) 2011
+#      Thorsten Glaser <tg@mirbsd.org>
+#
+# Provided that these terms and disclaimer and all copyright notices
+# are retained or reproduced in an accompanying document, permission
+# is granted to deal in this work without restriction, including un-
+# limited rights to use, publicly perform, distribute, sell, modify,
+# merge, give away, or sublicence.
+#
+# This work is provided "AS IS" and WITHOUT WARRANTY of any kind, to
+# the utmost extent permitted by applicable law, neither express nor
+# implied; without malicious intent or gross negligence. In no event
+# may a licensor, author or contributor be held liable for indirect,
+# direct, other damage, loss, or other issues arising in any way out
+# of dealing in the work, even if advised of the possibility of such
+# damage or existence of a defect, except proven that it results out
+# of said person's immediate fault when using the work as intended.
+#-
+# Collection of functions for ~/.profile or similar. POSIX shell, or
+# compatible, required; workarounds for older shells' bugs included.
+# Support of 'local' and 'echo -n' required.
+
+# convenience
+test -n "$BASH_VERSION" && shopt -s extglob
+
+# speedup
+test -n "$KSH_VERSION" && alias which='whence -p'
+
+# clear screen
+cls() {
+       local esc='\e'
+
+       echo -n "${esc}c"
+}
+# clear screen, kill ssh-agent, logout
+bye() {
+       local M='\e'
+       M=${M}c
+
+       if test x"$1" = x"k"; then
+               ssh-agent -k || M="$M Warning: ssh-agent returned error!
+"
+       fi
+       echo -n "$M"
+       exit 0
+       logout
+}
+
+# date -R (RFC 2822)
+dateR() {
+       date +"%a, %d %b %Y %H:%M:%S %z" "$@"
+}
+
+# print disc free stats in a more handy format for terminals
+# wider than 80 columns, but deal well with LVM
+df() {
+       command df -P "$@" | sed 's/Mounted on/Mountpoint/' | column -t
+}
+
+# various web-calling things
+
+# DuckDuckGo search
+ddg() {
+       ${BROWSER:-lynx} "https://duckduckgo.com/?kp=-1&kl=wt-wt&kb=t&kh=1&kj=g2&km=l&ka=monospace&ku=1&ko=s&k1=-1&kv=1&q=$*"
+}
+
+# GooGle Search
+ggs() {
+       ${BROWSER:-lynx} "http://www.google.com/search?hl=la&pws=0&num=100&safe=off&q=$*"
+}
+# Google GRoups
+ggr() {
+       ${BROWSER:-lynx} "http://groups.google.com/groups?hl=la&pws=0&num=100&safe=off&as_umsgid=$*"
+}
+
+# dict.leo.org German English
+ge() {
+       ${BROWSER:-lynx} "http://dict.leo.org/?search=$*"
+}
+# dict.leo.org German FRench
+gfr() {
+       ${BROWSER:-lynx} "http://dict.leo.org/frde?search=$*"
+}
+# dict.leo.org German ESpa~nol
+ges() {
+       ${BROWSER:-lynx} "http://dict.leo.org/esde?search=$*"
+}
+# explica palabras en espa~nol
+espanol() {
+       lynx -dump --nolist "http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML=2&LEMA=$*"
+}
+
+# call xloadimage by URI
+if /usr/bin/ftp -h 2>&1 | fgrep http:// >/dev/null 2>&1; then
+       loadfile() {
+               /usr/bin/ftp -Vo - "$@"
+       }
+elif which curl >/dev/null 2>&1; then
+       loadfile() {
+               curl "$@"
+       }
+elif which wget >/dev/null 2>&1; then
+       loadfile() {
+               wget -qO - "$@"
+       }
+else
+       loadfile() {
+               fetch -o - "$@"
+       }
+fi
+loadimage() {
+       local f
+
+       for f in "$@"; do
+               if test -s "$f"; then
+                       xloadimage "$f"
+               else
+                       fetch "$f" | xloadimage stdin
+               fi
+       done
+}
+
+# man with gnroff on MirPorts
+gman() {
+       man -C /usr/mpkg/share/groff/man_utf8.conf "$@"
+}
+
+# hexdump -C in look-better
+which hd >/dev/null 2>&1 || hd() {
+       hexdump -e '"%08.8_ax  " 8/1 "%02X " " - " 8/1 "%02X "' \
+           -e '"  |" "%_p"' -e '"|\n"' "$@"
+}
+
+# rot13 for those who do not have it
+which rot13 >/dev/null 2>&1 || rot13() {
+       tr \
+           abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ \
+           nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM
+}
+
+# csh like setenv
+setenv() {
+       eval $1=\$2
+       eval export $1
+}