From 513da89fe50b3bad3d758855f5622c4508977e4a Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 15 Oct 2015 01:48:48 +0200 Subject: initial commit --- push | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 push (limited to 'push') diff --git a/push b/push new file mode 100755 index 0000000..8a8d859 --- /dev/null +++ b/push @@ -0,0 +1,36 @@ +#! /bin/sh +# NAME +# push - Push master to all your repositores +# +# SYNOPSIS +# push +# +# ENVIRONMENT VARIABLES +# LOGNAME Specifies who you are. +# +# STOCKHOLM Specifies where stockholm can be found. +# (Default: ~/stockholm) +# +set -efu + +STOCKHOLM=${STOCKHOLM-$HOME/stockholm} + +my_hosts() { + (cd "$STOCKHOLM" && get "$LOGNAME" -l | jq -R -s -c 'split("\n")') +} + +all_push_hosts() { + echo '{' + git remote -v \ + | sed -n 's/^\(\S\+\)\s\+git@\([^:]\+\):\(\S\+\) (push)$/"\1":{"host":"\2","repo":"\3"}/;T;$!s/$/,/;p' + echo '}' +} + +my_push_hosts() { + my_hosts \ + | jq -r --argjson all_push_hosts "$(all_push_hosts)" \ + 'map(. as $host | select( $all_push_hosts | has($host)))[]' +} + +my_push_hosts \ + | parallel -j0 --no-notice --line-buffer --tag-string {} git push {} master -- cgit v1.2.3