-
Notifications
You must be signed in to change notification settings - Fork 0
/
newxposedproject.sh
executable file
·66 lines (60 loc) · 2.84 KB
/
newxposedproject.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash
while [[ $# > 1 ]]
do
key="$1"
case $key in
-c|--company)
COMPANY_NAME="$2"
shift # past argument
;;
-d|--xposed-desc)
XPOSED_DESC="$2"
shift # past argument
;;
-s|--sdk-dir)
SDK_DIR="$2"
shift # past argument
;;
-r|--root-project)
ROOT_PROJECT="$2"
shift # past argument
;;
-h|--hooks-filename)
HOOKS_FILE="$2"
shift # past argument
;;
*)
USAGE=1
;;
esac
shift # past argument or value
done
if [ -z "$COMPANY_NAME" -o -z "$HOOKS_FILE" -o -z "$SDK_DIR" -o -z "$ROOT_PROJECT" -o ! -z "$USAGE" ]; then
echo "Usage: $0 -c your.company.name.here -d 'xposed description' -h HooksFileNameWithNoJavaExtension -r ROOT_PROJECT_NAME -s android/sdk/dir"
echo "Usage: $0 --company your.company.name.here -xposed-desc 'xposed description' -hooks-filename HooksFileNameWithNoJavaExtension - ROOT_PROJECT_NAME --sdk-dir android/sdk/dir"
echo "Xposed description is the only optional argument"
exit
fi
BUILD_TOOLS_VERSION=`ls $SDK_DIR/build-tools | sort -n | tail -n 1`
BUILD_TOOLS_VERSION_MAJ=`echo $BUILD_TOOLS_VERSION | cut -d. -f 1`
if [ -z "$BUILD_TOOLS_VERSION" -o $BUILD_TOOLS_VERSION_MAJ -lt 21 ]; then
echo "Could not find a version of the android build tools to use (needs to be >=21)"
echo "Install a newer build tools using the android sdk manager (@ $SDK_DIR/tools/android)"
exit
fi
PACKAGE_NAME="$COMPANY_NAME.$ROOT_PROJECT"
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cp -r "$DIR/template" "$ROOT_PROJECT" || exit
sed "s%#{SDK_DIR}%$SDK_DIR%" "$DIR/template/local.properties" > "$ROOT_PROJECT/local.properties"
DIRS="$ROOT_PROJECT/app/src/main/java"
for i in `echo $PACKAGE_NAME | tr '.' ' '`; do
DIRS="$DIRS/$i"
mkdir "$DIRS"
done
sed "s/#{PACKAGE_NAME}/$PACKAGE_NAME/" "$ROOT_PROJECT/app/src/main/java/template.java" | sed "s/#{HOOKS_FILE}/$HOOKS_FILE/" > "$DIRS/$HOOKS_FILE.java"
rm "$ROOT_PROJECT/app/src/main/java/template.java"
sed "s/#{ROOT_PROJECT}/$ROOT_PROJECT/" "$DIR/template/settings.gradle" > "$ROOT_PROJECT/settings.gradle"
sed "s/#{HOOKS_FILE}/$HOOKS_FILE/" "$DIR/template/app/src/main/assets/xposed_init" | sed "s/#{PACKAGE_NAME}/$PACKAGE_NAME/" > "$ROOT_PROJECT/app/src/main/assets/xposed_init"
sed "s/#{PACKAGE_NAME}/$PACKAGE_NAME/" "$DIR/template/app/build.gradle" | sed "s/#{BUILD_TOOLS_VERSION_MAJ}/$BUILD_TOOLS_VERSION_MAJ/" | sed "s/#{BUILD_TOOLS_VERSION}/$BUILD_TOOLS_VERSION/" > "$ROOT_PROJECT/app/build.gradle" > "$ROOT_PROJECT/app/build.gradle"
sed "s/#{XPOSED_DESCRIPTION}/$XPOSED_DESC/" "$DIR/template/app/src/main/AndroidManifest.xml" | sed "s/#{PACKAGE_NAME}/$PACKAGE_NAME/" > "$ROOT_PROJECT/app/src/main/AndroidManifest.xml"
sed "s/#{ROOT_PROJECT}/$ROOT_PROJECT/" "$DIR/template/app/src/main/res/values/strings.xml" > "$ROOT_PROJECT/app/src/main/res/values/strings.xml"