]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
Don't use echo for data from the user.
authorSimon Ruderich <simon@ruderich.org>
Mon, 18 Nov 2013 12:31:43 +0000 (13:31 +0100)
committerSimon Ruderich <simon@ruderich.org>
Mon, 18 Nov 2013 12:31:43 +0000 (13:31 +0100)
lib.sh
setup.sh

diff --git a/lib.sh b/lib.sh
index 474f638c42c8fc858418656ca59ad73e9adab8da..c55cb0acd44a218825c0242b32285e40494a9199 100644 (file)
--- a/lib.sh
+++ b/lib.sh
@@ -41,7 +41,7 @@ installed_path() {
         # Walk PATH.
         for directory in $PATH; do
             if test -x "$directory/$1"; then
-                echo "$directory/$1"
+                printf '%s\n' "$directory/$1"
                 return 0
             fi
         done
@@ -143,9 +143,9 @@ link() {
 
     # Get all necessary paths.
     pwd=`pwd`
-    base=`echo "$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=`echo "$pwd/$1" | sed "s|$base/||"`
+    source=`printf '%s' "$pwd/$1" | sed "s|$base/||"`
     target=`basename "$2"`
 
     # Go to the directory where the link is going to be created.
@@ -155,18 +155,19 @@ link() {
     # overwriting real files.
     if ( test -f "$target" && test ! -h "$target" ) || \
             ( test -s "$target" && test ! -h "$target" ); then
-        echo "link(): target '$target' exists already and is no symbolic link!" >&2
+        printf "link(): target '%s' exists already and is no symbolic link!" \
+               "$target" >&2
         exit 1
     fi
 
     # Make sure the source exists (is file, directory or link).
     if test ! -f "$source" && test ! -d "$source" && test ! -h "$source"; then
-        echo "link(): source '$source' doesn't exist!" >&2
+        printf "link(): source '%s' doesn't exist!" "$source" >&2
         exit 1
     fi
 
     # Create the new symbolic link; remove the old one if necessary.
-    echo "link(): linking '$source' to '$target'"
+    printf "link(): linking '%s' to '%s'\n" "$source" "$target"
     rm -f "$target"
     ln -s "$source" "$target"
 
@@ -203,7 +204,8 @@ generate() {
         echo '# WARNING! DO NOT EDIT THIS FILE! #' >>"$file"
         echo '###################################' >>"$file"
         echo >>"$file"
-        echo "# It was generated from $file$extension on `date`." >>"$file"
+        printf "# It was generated from '%s' on %s.\n" \
+            "$file$extension" "`date`" >>"$file"
         echo >>"$file"
 
         file_tmp="$file"
index cf7eb54fe5cf5afe3ab45b405754f0202d000909..2190af18ab82f68e1530cdf0870c4490ed80d844 100755 (executable)
--- a/setup.sh
+++ b/setup.sh
@@ -25,13 +25,11 @@ for path in */setup.sh; do
     # Skip non executable setup.sh files as an easy way to deactivate one.
     test ! -x "$path" && continue
 
-    project=`echo "$path" | sed 's|/setup.sh$||'`
+    project=`printf '%s' "$path" | sed 's|/setup.sh$||'`
 
-    echo "running setup.sh in '$project'"
-    if ( cd "$project"; ./setup.sh >/dev/null ); then
-        :
-    else
-        echo "$project/setup.sh failed" >&2
+    printf "running setup.sh in '%s'\n" "$project"
+    ( cd "$project" && ./setup.sh >/dev/null ) || {
+        printf '%s/setup.sh failed\n' "$project" >&2
         exit 1
-    fi
+    }
 done