Loading envsetup.sh +68 −13 Original line number Diff line number Diff line Loading @@ -33,7 +33,9 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y - allmod: List all modules. - gomod: Go to the directory containing a module. - pathmod: Get the directory containing a module. - refreshmod: Refresh list of modules for allmod/gomod/pathmod. - outmod: Gets the location of a module's installed outputs with a certain extension. - installmod: Adb installs a module's built APK. - refreshmod: Refresh list of modules for allmod/gomod/pathmod/outmod/installmod. - syswrite: Remount partitions (e.g. system.img) as writable, rebooting if necessary. Environment options: Loading Loading @@ -411,7 +413,10 @@ function addcompletions() fi complete -F _lunch lunch complete -F _complete_android_module_names pathmod complete -F _complete_android_module_names gomod complete -F _complete_android_module_names outmod complete -F _complete_android_module_names installmod complete -F _complete_android_module_names m } Loading Loading @@ -1378,9 +1383,8 @@ function refreshmod() { > $ANDROID_PRODUCT_OUT/module-info.json.build.log 2>&1 } # List all modules for the current device, as cached in module-info.json. If any build change is # made and it should be reflected in the output, you should run 'refreshmod' first. function allmod() { # Verifies that module-info.txt exists, creating it if it doesn't. function verifymodinfo() { if [ ! "$ANDROID_PRODUCT_OUT" ]; then echo "No ANDROID_PRODUCT_OUT. Try running 'lunch' first." >&2 return 1 Loading @@ -1390,6 +1394,12 @@ function allmod() { echo "Could not find module-info.json. It will only be built once, and it can be updated with 'refreshmod'" >&2 refreshmod || return 1 fi } # List all modules for the current device, as cached in module-info.json. If any build change is # made and it should be reflected in the output, you should run 'refreshmod' first. function allmod() { verifymodinfo || return 1 python -c "import json; print('\n'.join(sorted(json.load(open('$ANDROID_PRODUCT_OUT/module-info.json')).keys())))" } Loading @@ -1397,20 +1407,12 @@ function allmod() { # Get the path of a specific module in the android tree, as cached in module-info.json. If any build change # is made, and it should be reflected in the output, you should run 'refreshmod' first. function pathmod() { if [ ! "$ANDROID_PRODUCT_OUT" ]; then echo "No ANDROID_PRODUCT_OUT. Try running 'lunch' first." >&2 return 1 fi if [[ $# -ne 1 ]]; then echo "usage: pathmod <module>" >&2 return 1 fi if [ ! -f "$ANDROID_PRODUCT_OUT/module-info.json" ]; then echo "Could not find module-info.json. It will only be built once, and it can be updated with 'refreshmod'" >&2 refreshmod || return 1 fi verifymodinfo || return 1 local relpath=$(python -c "import json, os module = '$1' Loading Loading @@ -1442,6 +1444,59 @@ function gomod() { cd $path } # Gets the list of a module's installed outputs, as cached in module-info.json. # If any build change is made, and it should be reflected in the output, you should run 'refreshmod' first. function outmod() { if [[ $# -ne 1 ]]; then echo "usage: outmod <module>" >&2 return 1 fi verifymodinfo || return 1 local relpath relpath=$(python -c "import json, os module = '$1' module_info = json.load(open('$ANDROID_PRODUCT_OUT/module-info.json')) if module not in module_info: exit(1) for output in module_info[module]['installed']: print(os.path.join('$ANDROID_BUILD_TOP', output))" 2>/dev/null) if [ $? -ne 0 ]; then echo "Could not find module '$1' (try 'refreshmod' if there have been build changes?)" >&2 return 1 elif [ ! -z "$relpath" ]; then echo "$relpath" fi } # adb install a module's apk, as cached in module-info.json. If any build change # is made, and it should be reflected in the output, you should run 'refreshmod' first. # Usage: installmod [adb install arguments] <module> # For example: installmod -r Dialer -> adb install -r /path/to/Dialer.apk function installmod() { if [[ $# -eq 0 ]]; then echo "usage: installmod [adb install arguments] <module>" >&2 return 1 fi local _path _path=$(outmod ${@:$#:1}) if [ $? -ne 0 ]; then return 1 fi _path=$(echo "$_path" | grep -E \\.apk$ | head -n 1) if [ -z "$_path" ]; then echo "Module '$1' does not produce a file ending with .apk (try 'refreshmod' if there have been build changes?)" >&2 return 1 fi local length=$(( $# - 1 )) echo adb install ${@:1:$length} $_path adb install ${@:1:$length} $_path } function _complete_android_module_names() { local word=${COMP_WORDS[COMP_CWORD]} COMPREPLY=( $(allmod | grep -E "^$word") ) Loading Loading
envsetup.sh +68 −13 Original line number Diff line number Diff line Loading @@ -33,7 +33,9 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y - allmod: List all modules. - gomod: Go to the directory containing a module. - pathmod: Get the directory containing a module. - refreshmod: Refresh list of modules for allmod/gomod/pathmod. - outmod: Gets the location of a module's installed outputs with a certain extension. - installmod: Adb installs a module's built APK. - refreshmod: Refresh list of modules for allmod/gomod/pathmod/outmod/installmod. - syswrite: Remount partitions (e.g. system.img) as writable, rebooting if necessary. Environment options: Loading Loading @@ -411,7 +413,10 @@ function addcompletions() fi complete -F _lunch lunch complete -F _complete_android_module_names pathmod complete -F _complete_android_module_names gomod complete -F _complete_android_module_names outmod complete -F _complete_android_module_names installmod complete -F _complete_android_module_names m } Loading Loading @@ -1378,9 +1383,8 @@ function refreshmod() { > $ANDROID_PRODUCT_OUT/module-info.json.build.log 2>&1 } # List all modules for the current device, as cached in module-info.json. If any build change is # made and it should be reflected in the output, you should run 'refreshmod' first. function allmod() { # Verifies that module-info.txt exists, creating it if it doesn't. function verifymodinfo() { if [ ! "$ANDROID_PRODUCT_OUT" ]; then echo "No ANDROID_PRODUCT_OUT. Try running 'lunch' first." >&2 return 1 Loading @@ -1390,6 +1394,12 @@ function allmod() { echo "Could not find module-info.json. It will only be built once, and it can be updated with 'refreshmod'" >&2 refreshmod || return 1 fi } # List all modules for the current device, as cached in module-info.json. If any build change is # made and it should be reflected in the output, you should run 'refreshmod' first. function allmod() { verifymodinfo || return 1 python -c "import json; print('\n'.join(sorted(json.load(open('$ANDROID_PRODUCT_OUT/module-info.json')).keys())))" } Loading @@ -1397,20 +1407,12 @@ function allmod() { # Get the path of a specific module in the android tree, as cached in module-info.json. If any build change # is made, and it should be reflected in the output, you should run 'refreshmod' first. function pathmod() { if [ ! "$ANDROID_PRODUCT_OUT" ]; then echo "No ANDROID_PRODUCT_OUT. Try running 'lunch' first." >&2 return 1 fi if [[ $# -ne 1 ]]; then echo "usage: pathmod <module>" >&2 return 1 fi if [ ! -f "$ANDROID_PRODUCT_OUT/module-info.json" ]; then echo "Could not find module-info.json. It will only be built once, and it can be updated with 'refreshmod'" >&2 refreshmod || return 1 fi verifymodinfo || return 1 local relpath=$(python -c "import json, os module = '$1' Loading Loading @@ -1442,6 +1444,59 @@ function gomod() { cd $path } # Gets the list of a module's installed outputs, as cached in module-info.json. # If any build change is made, and it should be reflected in the output, you should run 'refreshmod' first. function outmod() { if [[ $# -ne 1 ]]; then echo "usage: outmod <module>" >&2 return 1 fi verifymodinfo || return 1 local relpath relpath=$(python -c "import json, os module = '$1' module_info = json.load(open('$ANDROID_PRODUCT_OUT/module-info.json')) if module not in module_info: exit(1) for output in module_info[module]['installed']: print(os.path.join('$ANDROID_BUILD_TOP', output))" 2>/dev/null) if [ $? -ne 0 ]; then echo "Could not find module '$1' (try 'refreshmod' if there have been build changes?)" >&2 return 1 elif [ ! -z "$relpath" ]; then echo "$relpath" fi } # adb install a module's apk, as cached in module-info.json. If any build change # is made, and it should be reflected in the output, you should run 'refreshmod' first. # Usage: installmod [adb install arguments] <module> # For example: installmod -r Dialer -> adb install -r /path/to/Dialer.apk function installmod() { if [[ $# -eq 0 ]]; then echo "usage: installmod [adb install arguments] <module>" >&2 return 1 fi local _path _path=$(outmod ${@:$#:1}) if [ $? -ne 0 ]; then return 1 fi _path=$(echo "$_path" | grep -E \\.apk$ | head -n 1) if [ -z "$_path" ]; then echo "Module '$1' does not produce a file ending with .apk (try 'refreshmod' if there have been build changes?)" >&2 return 1 fi local length=$(( $# - 1 )) echo adb install ${@:1:$length} $_path adb install ${@:1:$length} $_path } function _complete_android_module_names() { local word=${COMP_WORDS[COMP_CWORD]} COMPREPLY=( $(allmod | grep -E "^$word") ) Loading