$OpenBSD: patch-kde-dev-scripts_qt4_icons-kde3tokde4-renamer_icons-kde3to4-renamer_sh,v 1.2 2013/07/05 14:32:50 zhuk Exp $
Cleanup development scripts, making them more portable and secure.
Upstream review 110858: http://git.reviewboard.kde.org/r/110858/
--- kde-dev-scripts/qt4/icons-kde3tokde4-renamer/icons-kde3to4-renamer.sh.orig	Fri Jun 28 22:03:13 2013
+++ kde-dev-scripts/qt4/icons-kde3tokde4-renamer/icons-kde3to4-renamer.sh	Fri Jul  5 18:14:32 2013
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 # icons-kde3to4-renamer.sh
 #
 # By Danny Allen (dannya@kde.org)
@@ -17,14 +17,7 @@ if [ ! -d $script_base ] || [ ! -d $icon_base ]; then
 fi
 
 # set icon types
-types="7"
-type[0]="actions"
-type[1]="apps"
-type[2]="categories"
-type[3]="devices"
-type[4]="emblems"
-type[5]="mimetypes"
-type[6]="places"
+types="actions apps categories devices emblems mimetypes places"
 
 # counters (leave as 0)
 implemented="0"
@@ -34,22 +27,22 @@ removed="0"
 
 
 # change to icon location
-cd $icon_base
+cd -- "$icon_base"
 
 
 function make_changes {
     area="$1"
 
     # check if directory exists for type (otherwise make it)
-    if [ ! -d $area ]; then
-        mkdir $area
-        svn add $area
+    if [ ! -d "$area" ]; then
+        mkdir -- "$area"
+        svn add -- "$area"
 
         echo "created $area directory"
     fi
 
     # change to the type directory
-    cd $area
+    cd -- "$area"
 
     # report area
     echo "--------------------------------"
@@ -62,29 +55,26 @@ function make_changes {
     missing_log="$script_base/missing_"$area.txt
 
     # remove old logs
-    if [ -f "$missing_log" ]; then
-        rm $missing_log
-    fi
+    rm -f -- "$missing_log"
 
     ########################
     # renamings
     ########################
     # determine number of icons to process
-    list_entries=`wc -l $rename_list | grep -o "[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\? " | grep -o "[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?"`
+    list_entries=`wc -l <"$rename_list"`
 
     echo ""
     number="0"
     while [ "$number" -le "$list_entries" ]; do
-        original_name=`head --lines=$(($number + 1)) $rename_list | tail --lines=1`
-        new_name=`head --lines=$(($number + 2)) $rename_list | tail --lines=1`
+        original_name=`head -n $(($number + 1)) "$rename_list" | tail -n 1`
+        new_name=`head -n $(($number + 2)) "$rename_list" | tail -n 1`
 
         # look for icon, if present, svn mv
         if [ -f "$original_name.$old_extension" ]; then
             # do the move
             svn mv "$original_name.$old_extension" "$new_name.$new_extension"
 
-            echo "$original_name renamed to $new_name"
-            echo ""
+            printf '%s renamed to %s\n\n' "$original_name" "$new_name"
 
             # increment implemented counter
             implemented=$(($implemented + 1))
@@ -93,7 +83,7 @@ function make_changes {
             correct=$(($correct + 1))
         else
             # add to missing_icons log
-            echo "$new_name" >> $missing_log
+            echo "$new_name" >> "$missing_log"
 
             # increment not implemented counter
             not_implemented=$(($not_implemented + 1))
@@ -120,17 +110,17 @@ function make_changes {
     # removals
     ########################
     # determine number of icons to process
-    list_entries=`wc -l $remove_list | grep -o "[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\? " | grep -o "[0-9][0-9]\?[0-9]\?[0-9]\?[0-9]\?"`
+    list_entries=`wc -l < "$remove_list"`
 
     echo ""
     number="0"
     while [ "$number" -le "$list_entries" ]; do
-        original_name=`head --lines=$(($number + 1)) $remove_list | tail --lines=1`
+        original_name="`head -n $(($number + 1)) \"$remove_list\" | tail -n 1`"
 
         # look for icon, if present, svn mv
         if [ -f "$original_name.$old_extension" ]; then
             # do the removal
-            svn rm "$original_name.$old_extension"
+            svn rm -- "$original_name.$old_extension"
 
             echo "removed $original_name"
             echo ""
@@ -149,15 +139,14 @@ function make_changes {
     echo "###############"
 
     # change back to parent dir
-    type_num=$(($type_num + 1))
     cd ..
 }
 
 
-# do all the changes, or only on a specific area?
-if [ "$1" != "" ]; then
-    # perform changes on one area
-    make_changes $1
+# do all the changes, or only on a specific areas?
+if [ $# != 0 ]; then
+    # perform changes on specified areas
+    make_changes "$@"
 else
     # rename filesystems to places if neccessary
     if [ -d "filesystems" ]; then
@@ -167,13 +156,12 @@ else
     fi
 
     # perform changes on all areas
-    type_num="0"
-    while [ "$type_num" -lt "$types" ]; do
-        make_changes ${type[$type_num]}
+    for area in $types; do
+        make_changes "$area"
     done
 fi
 
 echo ""
 echo ""
 echo "Don't forget to 'svn commit' your changes!"
-echo ""
\ No newline at end of file
+echo ""
