X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=.bin%2Fr;h=83816bd0bc68f54c698d89e1d77d0162f39a5397;hb=HEAD;hp=641ed64216f64361682698934e69d155acb561f4;hpb=c6a724ca581a2ac547cdab694176ace15fbbad8c;p=home.git diff --git a/.bin/r b/.bin/r index 641ed64..afa9c51 100755 --- a/.bin/r +++ b/.bin/r @@ -8,25 +8,11 @@ case $1 in esac case $1 in -""|-*) ;; -l) - cmd=list - shift - ;; -s) - cmd=sync - shift - ;; rb-all) cmd=rebase shift set -- all "$@" ;; -*) - cmd=$1 - shift - acmd=$(git config --get "alias.${cmd}" | sed 's: -.*::') - ;; esac mj_init() { @@ -69,7 +55,7 @@ process_reviewers() { local r arr=() for r in ${*//,/ } ; do case ${r} in - *OWNERS) + OWNERS*|*/OWNERS*) local owners=$( awk -F'@' ' ($2 == "chromium.org" || $2 == "google.com") {list = list "," $1} @@ -137,7 +123,10 @@ rebase) if [[ $1 == "all" ]] ; then shift if [[ $# -eq 0 ]] ; then - eval $(bash-colors --env | sed 's:^:export :') + # This bash version is still slightly faster than repo! + #exec r forall -j$(getconf _NPROCESSORS_ONLN) -p -c git rb-all + + eval "$(bash-colors --env | sed 's:^:export :')" root=$(repo_root) mj_init while read -a line ; do @@ -148,22 +137,10 @@ rebase) continue fi ( - out=$(env _proj=${proj} r rb all . 2>&1) + out=$(r rb-all . 2>&1) if [[ -n ${out} ]] ; then - while read line ; do - case ${line} in - "Fast-forwarded "*) ;; - "# "*) - line="${line#[#] }" - printf '%s### %s%-40s%s: %s\n' \ - "${BRACKET}" "${GOOD}" "${line%%:*}" "${NORMAL}" "${line#*:}" - ;; - *) - printf '%s### %s%-40s%s: ERROR: %s\n' \ - "${BRACKET}" "${BAD}" "${dir}" "${NORMAL}" "${line}" - ;; - esac - done < <(echo "${out}") + head=$(printf "%-40s" "${proj}") + echo "${out}" | sed "s:^:${head} :" fi _mj_child ) & @@ -171,39 +148,9 @@ rebase) done < <(r l) mj_finish exit 0 - #exec r forall -p -c 'r rb all .' /dev/null && break - done - fi - review=$(g cfg --get "remote.${remote}.review") - remote_branch=${remote_branch#refs/heads/} - - git_args=() - reviewers="" - while [[ $# -gt 0 ]] ; do - case $1 in - --re) - process_reviewers "$2" - shift - ;; - -n|--dry-run|--draft) - git_args+=( $1 ) - ;; - *) - err "unknown option: $1" - ;; - esac - shift - done - - ref_spec="${branch}:refs/for/${remote_branch}" - if [[ -n ${reviewers} ]] ; then - reviewers=( ${reviewers//,/ } ) - if [[ ${review} != ssh://* ]] ; then - gob_args=$(printf 'r=%s,' "${reviewers[@]}") - ref_spec+="%${gob_args%,}" - else - git_args+=( "--receive-pack=git receive-pack ${reviewers[*]/#/--reviewer=}" ) - fi - fi - - vr git push "${git_args[@]}" ${remote} ${ref_spec} && exit - err "could not figure out remote to push to" - ;; -sync) - set -- -j16 -c "$@" - ;; upload) args=() while [[ $# -gt 0 ]] ; do @@ -361,4 +255,4 @@ email) ;; esac -exec python2 $(find_repo) ${acmd:-${cmd}} "$@" +exec $(find_repo) ${acmd:-${cmd}} "$@"