Advertisement
RoundSparrow

Remove ActionBarhSherlock code revision 001

Aug 5th, 2013
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.55 KB | None | 0 0
  1. # Whartoff - An ActionBarSherlock migration utility
  2. #
  3. # usage: whartoff.sh <option> <project directory>
  4. #
  5. # options:
  6. #   -c : ActionBarSherlock to compatibility ActionBar
  7. #   -n : ActionBarSherlock to native ActionBar
  8.  
  9. #!/bin/bash
  10.  
  11. # First, we test whether bash supports arrays.
  12. # (Support for arrays was only added recently.)
  13. #
  14. whotest[0]='test' || (echo 'Failure: I did a test and determined that arrays not supported in this version of bash.' && exit 2)
  15.  
  16. usage ()
  17. {
  18.     echo -e "\nusage: $0 <option> <project directory>\n\noptions:\n  -c : ActionBarSherlock to compatibility ActionBar \n  -n : ActionBarSherlock to native ActionBar\n"
  19.     exit 1
  20. }
  21.  
  22. [ "$1" = "-c" ] || [ "$1" = "-n" ] || usage
  23. [ -n "$2" ] || usage
  24.  
  25. if [ -f "$2"/AndroidManifest.xml ]; then
  26.     # ant
  27.     SRC_PATH="$2"/src
  28.     RES_PATH="$2"/res
  29.     MAN_PATH="$2"/AndroidManifest.xml
  30. else
  31.     if [ -f "$2"/src/main/AndroidManifest.xml ]; then
  32.         # gradle
  33.         SRC_PATH="$2"/src/main/java
  34.         RES_PATH="$2"/src/main/res
  35.         MAN_PATH="$2"/src/main/AndroidManifest.xml
  36.     else
  37.         echo "$2 does not contain an Android project"
  38.         exit 1
  39.     fi
  40. fi
  41.  
  42. APP=$(grep "package=" "$MAN_PATH" | cut -d"\"" -f2,2)
  43.  
  44.  
  45. sedList1=(
  46.   's/com.actionbarsherlock.view.Menu/android.view.Menu/g'
  47.   's/com.actionbarsherlock.view.MenuInflater/android.view.MenuInflater/g'
  48.   's/com.actionbarsherlock.view.MenuItem/android.view.MenuItem/g'
  49.   's/com.actionbarsherlock.view.SubMenu/android.view.SubMenu/g'
  50.   's/com.actionbarsherlock.view.Window/android.view.Window/g'
  51.   's/com.actionbarsherlock.app.SherlockFragment/android.support.v4.app.Fragment/g'
  52.   's/com.actionbarsherlock.app.SherlockListFragment/android.support.v4.app.ListFragment/g'
  53.   's/SherlockFragment/Fragment/g'
  54.   's/SherlockListFragment/ListFragment/g'
  55.   's/SherlockPreferenceActivity/PreferenceActivity/g'
  56.   's/getSupportMenuInflater(/getMenuInflater(/g'
  57.   's/setSupportProgress/setProgress/g'
  58.   's/setSupportSecondaryProgress/setSecondaryProgress/g'
  59.   )
  60.  
  61.  
  62. sedList2=( '' )
  63.  
  64. if [ "$1" = "-c" ]; then
  65.     # compat
  66.     THE='s/Theme.Sherlock/Theme.AppCompat/g'
  67.     sedList2=(
  68.       's/com.actionbarsherlock.app.SherlockFragmentActivity/android.support.v7.app.ActionBarActivity/g'
  69.       's/com.actionbarsherlock.app.SherlockPreferenceActivity/android.preference.PreferenceActivity/g'
  70.       's/com.actionbarsherlock.view.ActionProvider/android.support.v4.view.ActionProvider/g'
  71.       's/import\ com.actionbarsherlock/import\ android.support.v7/g'
  72.       's/SherlockActivity/ActionBarActivity/g'
  73.       's/SherlockFragmentActivity/ActionBarActivity/g'
  74.       's/SherlockListActivity/ActionBarListActivity/g' #???
  75.       $THE
  76.       's/Widget.Sherlock/Widget.AppCompat/g'
  77.       's/android:showAsAction/app:showAsAction/g'
  78.       's/<menu/<menu xmlns:app="http:\/\/schemas.android.com\/apk\/res-auto"/g'
  79.       's/startActionMode(/startSupportActionMode(/g'
  80.     )
  81.     # android.support.v4.view.MenuItemCompat ???
  82. else
  83.     # native
  84.     THE='s/Theme.Sherlock/android:Theme.Holo/g'
  85.     sedList2=(
  86.        's/com.actionbarsherlock.app.SherlockFragmentActivity/android.support.v4.app.FragmentActivity/g'
  87.        's/com.actionbarsherlock.app.SherlockPreferenceActivity/android.preference.PreferenceActivity/g'
  88.        's/import\ com.actionbarsherlock/import\ android/g'
  89.        's/SherlockActivity/Activity/g'
  90.        's/SherlockFragmentActivity/FragmentActivity/g'
  91.        's/SherlockListActivity/ListActivity/g'
  92.        $THE
  93.        's/Widget.Sherlock/android:Widget.Holo/g'
  94.        's/getSupportActionBar(/getActionBar(/g'
  95.     )
  96. fi
  97.  
  98.  
  99. function sedMultiple2 {
  100.    echo "PARAM1: $1"
  101.    echo "PARAM2: $2"
  102.    echo "PARAM3: $3"
  103.    declare -a inArraySed1=("${!1}")
  104.    INPATH1=$2
  105.    INFTYPE=$3
  106.  
  107.    # (Loop until we find an empty string.)
  108.    count1=0
  109.    while [ "x${inArraySed1[count1]}" != "x" ]
  110.    do
  111.        count1=$(( $count1 + 1 ))
  112.    done
  113.    echo "*** Array items count1: $count1"
  114.  
  115.    count2=0
  116.    while [ "x${inArraySed1[count2]}" != "x" ]
  117.    do
  118.       singleSed1=${inArraySed1[count2]}
  119.       echo "---: $count2  find $INPATH1 -type f -name $INFTYPE -print0   | xargs -0 sed -i $singleSed1"
  120.       find $INPATH1 -type f -name $INFTYPE -print0   | xargs -0 sed -i "$singleSed1"
  121.       count2=$(( $count2 + 1 ))
  122.    done
  123. }  
  124.  
  125.  
  126. sedMultiple2 sedList1[@] "$SRC_PATH" "*.java"
  127.  
  128. read -p "*** First batch done, continue with [Enter]..."
  129.  
  130. sedMultiple2 sedList2[@] "$RES_PATH" "*.xml"
  131.  
  132. read -p "*** Second batcj, continue with [Enter]..."
  133.  
  134. sedList3=( $THE )
  135. sedMultiple2 sedList3[@] "$MAN_PATH" "*.xml"
  136.  
  137. echo "done!"
  138. # ToDo: Check errorlevels
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement