diff options
author | Joe Onorato <joeo@google.com> | 2021-02-26 23:14:17 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-02-26 23:14:17 +0000 |
commit | fe65f90925ef242f855f0e0eba720959d44e6239 (patch) | |
tree | 9fef53834186e02dbb397af0ace7e1afc2543446 | |
parent | a2f416b884a1926c9ec6e173e86c2db658af868e (diff) | |
parent | 2599d32a40e4e8fc5292c286ed8ea84414ac677a (diff) | |
download | build-fe65f90925ef242f855f0e0eba720959d44e6239.tar.gz |
Merge "Add dirmods command to envsetup.sh" am: 2599d32a40
Original change: https://android-review.googlesource.com/c/platform/build/+/1607836
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: If8e1b50cabe45a9643ca22ac31a39f8905825ab0
-rw-r--r-- | envsetup.sh | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/envsetup.sh b/envsetup.sh index 15d6fb4bd9..58fcd3be66 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -35,6 +35,7 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y - gomod: Go to the directory containing a module. - pathmod: Get the directory containing a module. - outmod: Gets the location of a module's installed outputs with a certain extension. +- dirmods: Gets the modules defined in a given directory. - 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. @@ -1411,8 +1412,9 @@ function allmod() { python -c "import json; print('\n'.join(sorted(json.load(open('$ANDROID_PRODUCT_OUT/module-info.json')).keys())))" } -# 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. +# 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. Note: This is the inverse of dirmods. function pathmod() { if [[ $# -ne 1 ]]; then echo "usage: pathmod <module>" >&2 @@ -1436,6 +1438,36 @@ print(module_info[module]['path'][0])" 2>/dev/null) fi } +# 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. Note: This is the inverse of pathmod. +function dirmods() { + if [[ $# -ne 1 ]]; then + echo "usage: dirmods <path>" >&2 + return 1 + fi + + verifymodinfo || return 1 + + python -c "import json, os +dir = '$1' +while dir.endswith('/'): + dir = dir[:-1] +prefix = dir + '/' +module_info = json.load(open('$ANDROID_PRODUCT_OUT/module-info.json')) +results = set() +for m in module_info.values(): + for path in m.get(u'path', []): + if path == dir or path.startswith(prefix): + name = m.get(u'module_name') + if name: + results.add(name) +for name in sorted(results): + print(name) +" +} + + # Go to 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 gomod() { |