mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-10-11 04:33:46 +00:00
This updates to support updating things like `linuxkit/runc:v0.3` to a new hash (or tag). Running: ./scripts/update-component-sha.sh --image linuxkit/runc100d0d046c
Still DTRT and updates runc to that (bogus) sha. Furthermore, running: ./scripts/update-component-sha.sh --image linuxkit/runc v0.4 Updates runc to that (bogus) release (this worked before) but now running: ./scripts/update-component-sha.sh --image linuxkit/runcacba8886e4
Inverts things and puts them back. (this is not quote a nop because src/cmd/linuxkit/vendor/github.com/moby/tool/src/moby/linuxkit.go has a different sha in it which is not put back) Signed-off-by: Ian Campbell <ijc@docker.com>
82 lines
1.6 KiB
Bash
Executable File
82 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
##
|
|
#
|
|
# script to replace hashes in config files
|
|
# see usage() for usage and functionality
|
|
#
|
|
|
|
usage() {
|
|
cat >&2 <<EOF
|
|
$0 --<mode> <how-to-find> <new-hash>
|
|
|
|
Available modes: --hash and --image
|
|
|
|
Replace by hash:
|
|
$0 --hash <OLD> <NEW>
|
|
Example: $0 --hash 8675309abcdefg abcdef567899
|
|
Will replace all instances of 8675309abcdefg with abcdef567899
|
|
|
|
Replace by image: $0 --image <IMAGE> <NEW>
|
|
$0 --image <IMAGE> <NEW>
|
|
Example: $0 --image linuxkit/foo 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.
|
|
Thus the following are equivalent:
|
|
$0 <OLD> <NEW>
|
|
$0 --hash <OLD> <NEW>
|
|
|
|
EOF
|
|
}
|
|
|
|
|
|
# backwards compatibility
|
|
if [ $# -eq 2 -a -n "${1%--*}" ]; then
|
|
set -- "--hash" "$1" "$2"
|
|
fi
|
|
|
|
# sufficient arguments
|
|
if [ $# -lt 2 -o $# -gt 3 ] ; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
# which mode?
|
|
case "$1" in
|
|
--hash)
|
|
if [ $# -ne 3 ] ; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
old=$2
|
|
new=$3
|
|
|
|
git grep -w -l "\b$old\b" | xargs sed -i.bak -e "s,$old,$new,g"
|
|
;;
|
|
--image)
|
|
case $# in
|
|
2)
|
|
image=${2%:*}
|
|
hash=${2#*:}
|
|
;;
|
|
3)
|
|
image=$2
|
|
hash=$3
|
|
;;
|
|
esac
|
|
git grep -E -l "\b$image:" | xargs sed -i.bak -E -e "s,$image:([[:xdigit:]]{40}|v[0-9\.]+),$image:$hash,g"
|
|
;;
|
|
*)
|
|
echo "Unknown mode $1"
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
find . -name '*.bak' | xargs rm
|