update-component-sha: Accept easier to cut-n-paste --image arguments.

Signed-off-by: Ian Campbell <ijc@docker.com>
This commit is contained in:
Ian Campbell 2017-10-13 10:34:02 +01:00
parent a87a07c8e9
commit 5380c7a18d

View File

@ -23,6 +23,9 @@ Replace by image: $0 --image <IMAGE> <NEW>
Example: $0 --image linuxkit/foo abcdef567899 Example: $0 --image linuxkit/foo abcdef567899
Will tag all instances of linuxkit/foo with abcdef567899 Will tag all instances of linuxkit/foo with abcdef567899
$0 --image <IMAGE>:<NEW> is accepted as a convenient shortcut for cutting
and pasting e.g.the output of linuxkit pkg show-tag
By default, for convenience, if no mode is given (--image or --hash), the first method (--hash) is assumed. By default, for convenience, if no mode is given (--image or --hash), the first method (--hash) is assumed.
Thus the following are equivalent: Thus the following are equivalent:
$0 <OLD> <NEW> $0 <OLD> <NEW>
@ -33,28 +36,39 @@ EOF
# backwards compatibility # backwards compatibility
if [ $# -eq 2 ]; then if [ $# -eq 2 -a -n "${1%--*}" ]; then
set -- "--hash" "$1" "$2" set -- "--hash" "$1" "$2"
fi fi
# sufficient arguments # sufficient arguments
if [ $# -ne 3 ] ; then if [ $# -lt 2 -o $# -gt 3 ] ; then
usage usage
exit 1 exit 1
fi fi
# which mode? # which mode?
case "$1" in case "$1" in
--hash) --hash)
if [ $# -ne 3 ] ; then
usage
exit 1
fi
old=$2 old=$2
new=$3 new=$3
git grep -w -l "\b$old\b" | xargs sed -i.bak -e "s,$old,$new,g" git grep -w -l "\b$old\b" | xargs sed -i.bak -e "s,$old,$new,g"
;; ;;
--image) --image)
image=$2 case $# in
hash=$3 2)
image=${2%:*}
hash=${2#*:}
;;
3)
image=$2
hash=$3
;;
esac
git grep -E -l "\b$image:" | xargs sed -i.bak -e "s,$image:[[:xdigit:]]"'\{40\}'",$image:$hash,g" git grep -E -l "\b$image:" | xargs sed -i.bak -e "s,$image:[[:xdigit:]]"'\{40\}'",$image:$hash,g"
;; ;;
*) *)