]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - lib.sh
herbstluftwm/autostart: add bindings to run programs and select windows
[config/dotfiles.git] / lib.sh
diff --git a/lib.sh b/lib.sh
index 70be68df0433531e27c5f7ab58e99bf8350a305e..05341537363b6e2bf19ed44df8bd50c3d184a175 100644 (file)
--- a/lib.sh
+++ b/lib.sh
@@ -2,7 +2,7 @@
 #
 # Their setup.sh script sources this file.
 
-# Copyright (C) 2009-2014  Simon Ruderich
+# Copyright (C) 2009-2018  Simon Ruderich
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -68,7 +68,7 @@ cmd_i() {
 
 # Usage: sed_i ... <file>
 #
-# sed -i is not compatible due to different implementations. See cmd_i.
+# sed -i is not portable due to different implementations. See cmd_i.
 sed_i() {
     cmd_i sed "$@"
 }
@@ -101,7 +101,7 @@ simple_cpp() {
             break
         fi
 
-        cmd="$cmd s/\b$x\b/\$ARGV[\$i]/g; \$i++;"
+        cmd="$cmd s/\\b$x\\b/\$ARGV[\$i]/g; \$i++;"
     done
 
     perl_line_filter "$cmd" -- "$@"
@@ -111,7 +111,6 @@ simple_cpp() {
 #
 # - Debian (debian)
 # - Gentoo (gentoo)
-# - Mac OS X (darwin)
 # - Solaris/OpenSolaris (sun)
 # - FreeBSD (freebsd)
 #
@@ -121,11 +120,9 @@ os() {
         echo debian
     elif test -f /etc/gentoo-release; then
         echo gentoo
-    elif test x`uname` = xDarwin; then
-        echo darwin
-    elif test x`uname` = xSunOS; then
+    elif test x"`uname`" = xSunOS; then
         echo sun
-    elif test x`uname` = xFreeBSD; then
+    elif test x"`uname`" = xFreeBSD; then
         echo freebsd
     else
         echo 'unsupported OS!' >&2
@@ -143,7 +140,7 @@ link() {
 
     # Get all necessary paths.
     pwd=`pwd`
-    base=`printf '%s' "$2" | sed "s|\~|$HOME|"` # expand ~, some sh don't do it
+    base=`printf '%s' "$2" | sed "s|~|$HOME|"` # expand ~, some sh don't do it
     base=`dirname "$base"`
     source=`printf '%s' "$pwd/$1" | sed "s|$base/||"`
     target=`basename "$2"`
@@ -154,24 +151,24 @@ link() {
     # Abort if the target file exists and is no symbolic link. Prevents
     # overwriting real files.
     if test -e "$target" && test ! -h "$target"; then
-        printf "link(): target '%s' exists already and is no symbolic link!\n" \
+        printf 'link(): target "%s" exists already and is no symbolic link!\n' \
                "$target" >&2
         exit 1
     fi
 
     # Make sure the source exists.
     if test ! -e "$source"; then
-        printf "link(): source '%s' doesn't exist!\n" "$source" >&2
+        printf 'link(): source "%s" does not exist!\n' "$source" >&2
         exit 1
     fi
 
     # Create the new symbolic link; remove the old one if necessary.
-    printf "link(): linking '%s' to '%s'\n" "$source" "$target"
+    printf 'link(): linking "%s" to "%s"\n' "$source" "$target"
     rm -f "$target"
     ln -s "$source" "$target"
 
     # Go back to the directory where we were before.
-    cd "$pwd"
+    cd "$pwd" || return 1
 }
 
 # Generate a file from a source file using a given command. A warning not to
@@ -196,16 +193,18 @@ generate() {
         file_tmp="$file.tmp"
     else
         # We only need this message if we generate a new file.
-        printf "%s: generating from '%s' (%s)\n" \
+        printf '%s: generating from "%s" (%s)\n' \
             "$file" "$file$extension" "$1"
 
-        echo '###################################'  >"$file"
-        echo '# WARNING! DO NOT EDIT THIS FILE! #' >>"$file"
-        echo '###################################' >>"$file"
-        echo >>"$file"
-        printf "# It was generated from '%s' on %s.\n" \
-            "$file$extension" "`date`" >>"$file"
-        echo >>"$file"
+        {
+            echo '###################################'
+            echo '# WARNING! DO NOT EDIT THIS FILE! #'
+            echo '###################################'
+            echo
+            printf '# It was generated from "%s" on %s.\n' \
+                "$file$extension" "`date`"
+            echo
+        } > "$file"
 
         file_tmp="$file"
     fi