1
0
Fork 1
mirror of https://example.com synced 2024-11-25 15:16:40 +09:00
firefish/neko/update/main.sh

73 lines
1.5 KiB
Bash
Executable file

#!/bin/sh
set -eu
. neko/update/utils
# Apply patches
run './neko/update/patch.sh'
br
# Show messages
for message in $(find neko/messages -type f ! -name '*.resolved' -print | sort); do
file=$(basename -- "${message}")
if [ ! -f "neko/flags/${file}" ]; then
if contains '--install' "$@"; then
touch "neko/flags/${file}"
else
say 'There is an important notice!'
cat "${message}"
say 'Continue? (Are you ready for upgrading?)'
printf '[y/N] > '
read -r yn
case "${yn}" in
[Yy]|[Yy][Ee][Ss])
touch "neko/flags/${file}"
say "Let's go!"
say "To read the message again, run: \$ cat ${message}"
br
;;
*)
say "Okay, please run this script again when you're ready!"
exit 1
;;
esac
fi
fi
done
# Update
docker_update() {
./neko/update/container.sh 'docker' "$@"
}
podman_update() {
./neko/update/container.sh 'podman' "$@"
}
native_update() {
./neko/update/native.sh "$@"
}
if contains '--docker' "$@"; then docker_update "$@"
elif contains '--podman' "$@"; then podman_update "$@"
elif contains '--native' "$@"; then native_update "$@"
else
say 'Do you use Docker or Podman?'
printf 'd: Docker, p: Podman, n: No [d/p/N] > '
read -r resp
case "${resp}" in
[Yy]|[Yy][Ee][Ss])
sadsay "Watch out! ${resp} is not a valid answer." >&2
exit 2
;;
[Dd]) docker_update "$@" ;;
[Pp]) podman_update "$@" ;;
*) native_update "$@" ;;
esac
fi
# Done
say 'Enjoy your sabakan life~'