dev: refactor "running" command
This commit is contained in:
parent
7190d9ea90
commit
c15a63ff8a
4 changed files with 48 additions and 50 deletions
|
@ -4,16 +4,16 @@ set -eu
|
|||
. neko/update/utils
|
||||
|
||||
pull() {
|
||||
say "Pulling the image..."
|
||||
say 'Pulling the image...'
|
||||
docker pull docker.io/naskya/firefish
|
||||
}
|
||||
|
||||
if ! pull; then
|
||||
say "awawa, the image may not be compatible with your environment..."
|
||||
say "Gonnya try building the image locally!"
|
||||
say 'awawa, the image may not be compatible with your environment...'
|
||||
say 'Gonnya try building the image locally!'
|
||||
|
||||
say "It takes some time! Why not brew a cup of cofe?"
|
||||
say 'It takes some time! Why not brew a cup of cofe?'
|
||||
docker build --tag docker.io/naskya/firefish --build-arg VERSION="$(version)" .
|
||||
fi
|
||||
|
||||
say "Done!"
|
||||
say 'Done!'
|
||||
|
|
|
@ -4,58 +4,56 @@ set -eu
|
|||
. neko/update/utils
|
||||
|
||||
# Confirm that the server is stopped
|
||||
if [ $# != 1 ] || [ "$1" != "--skip-all-confirmations" ]; then
|
||||
say "Did you stop your server?"
|
||||
printf "[Y/n] > "
|
||||
if [ "$#" != '1' ] || [ "$1" != '--skip-all-confirmations' ]; then
|
||||
say 'Did you stop your server?'
|
||||
printf '[Y/n] > '
|
||||
read -r yn
|
||||
|
||||
case "${yn}" in
|
||||
[Nn]|[Nn][Oo])
|
||||
say "You must stop your server first!"
|
||||
say 'You must stop your server first!'
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
say "uwu~ erai erai!"
|
||||
say 'uwu~ erai erai!'
|
||||
br
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# write version info
|
||||
say "Writing version info to package.json..."
|
||||
say 'Writing version info to package.json...'
|
||||
|
||||
running "sed \"s/\\\"version\\\": \\\"\\([^+][^+]*\\).*\\\",$/\\\"version\\\": \\\"\\\\1+neko:$(version)\\\",/\" package.json > package.json.new && mv -- package.json.new package.json"
|
||||
run "$(cat - << EOC
|
||||
sed "s/\"version\": \"\([^+][^+]*\).*\",$/\"version\": \"\\1+neko:$(version)\",/" package.json > package.json.new && mv -- package.json.new package.json
|
||||
EOC
|
||||
)"
|
||||
|
||||
say "Done!"
|
||||
say 'Done!'
|
||||
br
|
||||
|
||||
# install dependencies
|
||||
say "Upgrading dependencies..."
|
||||
say 'Upgrading dependencies...'
|
||||
|
||||
running "corepack prepare pnpm@latest --activate"
|
||||
corepack prepare pnpm@latest --activate
|
||||
run 'corepack prepare pnpm@latest --activate'
|
||||
run 'pnpm install --frozen-lockfile'
|
||||
|
||||
running "pnpm install --frozen-lockfile"
|
||||
pnpm install --frozen-lockfile
|
||||
|
||||
say "Done!"
|
||||
say 'Done!'
|
||||
br
|
||||
|
||||
# build
|
||||
say "Start building Firefish."
|
||||
say "It takes some time! Why not brew a cup of cofe?"
|
||||
say 'Start building Firefish.'
|
||||
say 'It takes some time! Why not brew a cup of cofe?'
|
||||
|
||||
running "NODE_OPTIONS=\"--max_old_space_size=3072\" NODE_ENV=\"production\" pnpm run rebuild"
|
||||
NODE_OPTIONS="--max_old_space_size=3072" NODE_ENV="production" pnpm run rebuild
|
||||
run 'NODE_OPTIONS="--max_old_space_size=3072" NODE_ENV="production" pnpm run rebuild'
|
||||
|
||||
say "Done! We're almost there."
|
||||
br
|
||||
|
||||
# prevent migration errors
|
||||
if [ ! -f packages/backend/native-utils/built/index.js ]; then
|
||||
say "Something went wrong orz... Gonnya try fixing that."
|
||||
running "cp neko/index.js packages/backend/native-utils/built/index.js"
|
||||
say 'Something went wrong orz... Gonnya try fixing that.'
|
||||
run 'cp neko/index.js packages/backend/native-utils/built/index.js'
|
||||
cp neko/index.js packages/backend/native-utils/built/index.js
|
||||
else
|
||||
say "It's going well so far!"
|
||||
|
@ -63,10 +61,8 @@ else
|
|||
fi
|
||||
|
||||
# migrate
|
||||
say "Database migration time!"
|
||||
say 'Database migration time!'
|
||||
run 'NODE_OPTIONS="--max_old_space_size=3072" NODE_ENV="production" pnpm run migrate'
|
||||
|
||||
running "NODE_OPTIONS=\"--max_old_space_size=3072\" NODE_ENV=\"production\" pnpm run migrate"
|
||||
NODE_OPTIONS="--max_old_space_size=3072" NODE_ENV="production" pnpm run migrate
|
||||
|
||||
say "Done!"
|
||||
say 'Done!'
|
||||
br
|
||||
|
|
|
@ -6,14 +6,15 @@ color() {
|
|||
|
||||
say() {
|
||||
color 5 # magenta
|
||||
printf "( ^-^) < %s\n" "$1"
|
||||
printf '( ^-^) < %s\n' "$1"
|
||||
color
|
||||
}
|
||||
|
||||
running() {
|
||||
run() {
|
||||
color 3 # yellow
|
||||
printf "[running] \$ %s\n" "$1"
|
||||
color
|
||||
/bin/sh -c "$1"
|
||||
}
|
||||
|
||||
br() {
|
||||
|
@ -23,5 +24,5 @@ br() {
|
|||
version() {
|
||||
COMMIT_DATE=$(git show --no-patch --pretty="%cs" FETCH_HEAD | sed -e "s/-//g" | cut -c 3-)
|
||||
COMMIT_HASH_INITIAL=$(printf "%s" "$(git rev-parse FETCH_HEAD)" | cut -c 1)
|
||||
printf "%s.%s" "${COMMIT_DATE}" "${COMMIT_HASH_INITIAL}"
|
||||
printf '%s.%s' "${COMMIT_DATE}" "${COMMIT_HASH_INITIAL}"
|
||||
}
|
||||
|
|
33
update.sh
33
update.sh
|
@ -3,33 +3,33 @@ set -eu
|
|||
|
||||
. neko/update/utils
|
||||
|
||||
say "Start upgrading Firefish!"
|
||||
say 'Start upgrading Firefish!'
|
||||
br
|
||||
|
||||
# Pull changes
|
||||
## git pull
|
||||
OLD_COMMIT=$(git rev-parse HEAD)
|
||||
|
||||
say "Pulling changes from the remote repo..."
|
||||
say 'Pulling changes from the remote repo...'
|
||||
|
||||
running "git checkout -- package.json packages/backend/assets"
|
||||
run 'git checkout -- package.json packages/backend/assets'
|
||||
git checkout -- package.json packages/backend/assets
|
||||
|
||||
running "git pull --ff --no-edit --autostash --strategy-option theirs"
|
||||
run 'git pull --ff --no-edit --autostash --strategy-option theirs'
|
||||
git pull --ff --no-edit --autostash --strategy-option theirs
|
||||
|
||||
NEW_COMMIT=$(git rev-parse HEAD)
|
||||
say "Pulled successfully!"
|
||||
say 'Pulled successfully!'
|
||||
br
|
||||
|
||||
## check if the update script itself is updated
|
||||
say "Checking if the update script itself has been modified by this update..."
|
||||
if [ "$(git diff "${OLD_COMMIT}" "${NEW_COMMIT}" update.sh neko/update)" != "" ]; then
|
||||
say "Oh meow, that seems to be the case."
|
||||
say 'Checking if the update script itself has been modified by this update...'
|
||||
if [ "$(git diff "${OLD_COMMIT}" "${NEW_COMMIT}" update.sh neko/update)" != '' ]; then
|
||||
say 'Oh meow, that seems to be the case.'
|
||||
say "I'm sorry to bother you, but please run this script again!"
|
||||
exit 1
|
||||
else
|
||||
say "This script seems to be up-to-date!"
|
||||
say 'This script seems to be up-to-date!'
|
||||
br
|
||||
fi
|
||||
|
||||
|
@ -37,12 +37,12 @@ fi
|
|||
for message in neko/messages/*; do
|
||||
file=$(basename -- "${message}")
|
||||
if [ ! -f "neko/flags/${file}" ]; then
|
||||
if [ $# != 1 ] || [ "$1" != "--skip-all-confirmations" ]; then
|
||||
say "There is an important notice!"
|
||||
if [ "$#" != '1' ] || [ "$1" != '--skip-all-confirmations' ]; then
|
||||
say 'There is an important notice!'
|
||||
cat "${message}"
|
||||
|
||||
say "Continue? (Are you ready for upgrading?)"
|
||||
printf "[y/N] > "
|
||||
say 'Continue? (Are you ready for upgrading?)'
|
||||
printf '[y/N] > '
|
||||
read -r yn
|
||||
|
||||
case "${yn}" in
|
||||
|
@ -50,6 +50,7 @@ for message in neko/messages/*; do
|
|||
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!"
|
||||
|
@ -62,8 +63,8 @@ for message in neko/messages/*; do
|
|||
fi
|
||||
done
|
||||
|
||||
say "Do you use Docker?"
|
||||
printf "[y/N] > "
|
||||
say 'Do you use Docker?'
|
||||
printf '[y/N] > '
|
||||
read -r yn
|
||||
|
||||
case "${yn}" in
|
||||
|
@ -76,4 +77,4 @@ case "${yn}" in
|
|||
esac
|
||||
|
||||
# Done
|
||||
say "Enjoy your sabakan life~"
|
||||
say 'Enjoy your sabakan life~'
|
||||
|
|
Loading…
Reference in a new issue