commit:     61bb1d8c568187e0393bc32d78d5972f8245cae9
Author:     Benda Xu <heroxbd <AT> gentoo <DOT> org>
AuthorDate: Mon Jan  9 11:19:16 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jan  9 12:43:29 2017 +0000
URL:        https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=61bb1d8c

movl: refresh ebuilds and only digest 1 ebuild.

 scripts/movl | 34 +++++++++++++++++++++++++++++-----
 1 file changed, 29 insertions(+), 5 deletions(-)

diff --git a/scripts/movl b/scripts/movl
index 231ab5d..efc31c7 100755
--- a/scripts/movl
+++ b/scripts/movl
@@ -1,5 +1,6 @@
 #!/bin/bash
-source /etc/java-ebuilder.conf
+source "/etc/java-ebuilder.conf"
+tsh="/usr/lib/java-ebuilder/tree.sh"
 
 clean-maven() {
     rm -f "${CACHEDIR}"/maven-cache
@@ -21,6 +22,27 @@ clean() {
     clean-maven
 }
 
+rrdep() {
+    # regenerate reverse dependencies
+    for rdep in $(egrep -l "$1.*->" -r "${MAVEN_OVERLAY_DIR}"/app-maven); do
+       [[ ${rdep} = *.ebuild ]] && "${tsh}" ${rdep}
+    done
+}
+
+refresh() {
+    if [[ $1=*:* ]]; then
+       rrdep $1
+    else
+       # input: package name
+       for ebd in "${MAVEN_OVERLAY_DIR}"/app-maven/$1/*.ebuild; do
+           mid=$(sed -nr 's,^MAVEN_ID="(.*)",\1,p' "${ebd}")
+           rm "${ebd}"; "${tsh}" ${mid}
+           sed "/${mid}/d" -i "${CACHEDIR}"/maven-cache
+           rrdep ${mid}
+       done
+    fi
+}
+
 build() {
     : ${PORTDIR:=$(portageq get_repo_path $(portageq envvar EROOT) gentoo)}
     : ${PORTAGE_TMPDIR:=$(portageq envvar PORTAGE_TMPDIR)}
@@ -51,18 +73,20 @@ build() {
     fi
 
     for M in ${MAVEN_ARTS}; do
-        /usr/lib/java-ebuilder/tree.sh ${M}
+        "${tsh}" ${M}
     done
 
-    ls -1 "${MAVEN_OVERLAY_DIR}"/app-maven/*/*.ebuild | parallel ebuild {} 
digest
+    cd "${MAVEN_OVERLAY_DIR}"/app-maven
+    parallel ebuild '$(echo {}/*.ebuild | cut -d\  -f1)' digest ::: *
 }
 
 if [[ $# -gt 0 ]]; then
-    funcs=$@
+    funcs=$1
+    shift 1
 else
     funcs=build
 fi
 
 for func in ${funcs}; do
-    ${func}
+    ${func} $@
 done

Reply via email to