From ea3a5b3e4c74436504afc9f10c153f416e48c3d2 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Mon, 14 Sep 2026 16:56:24 +0500 Subject: Makefile: move out maintenance stuff into a separate script --- scripts/maintenance.sh | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100755 scripts/maintenance.sh (limited to 'scripts') diff --git a/scripts/maintenance.sh b/scripts/maintenance.sh new file mode 100755 index 0000000..1facc05 --- /dev/null +++ b/scripts/maintenance.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash + +set -o errexit -o nounset -o pipefail +shopt -s inherit_errexit lastpipe + +script_path="$( readlink --canonicalize-existing -- "${BASH_SOURCE[0]}" )" +readonly script_path +script_dir="$( dirname -- "$script_path" )" +readonly script_dir + +update_gems() { + echo + echo ====================================================================== + echo Updating gems + echo ====================================================================== + bundle config set frozen false + bundle update + echo ---------------------------------------------------------------------- +} + +update_npm_packages() { + echo + echo ====================================================================== + echo Updating npm packages + echo ====================================================================== + npm update + echo ---------------------------------------------------------------------- +} + +browserify() { + echo + echo ====================================================================== + echo Running Browserify + echo ====================================================================== + npm exec -- browserify --require ip-address --outfile src/assets/js/bundle.js + echo ---------------------------------------------------------------------- +} + +push_changes() { + echo + echo ====================================================================== + echo Pushing changes + echo ====================================================================== + + local git_status + git_status="$( git status --porcelain=v1 )" + + if [ -z "$git_status" ]; then + echo 'No changes.' + echo ---------------------------------------------------------------------- + return + fi + + local allowed=' M Gemfile.lock| M package-lock.json| M src/assets/js/bundle.js' + + if echo "$git_status" | grep -E -q --invert-match --line-regexp "($allowed)" ; then + echo 'Error: unrecognized modifications in the repository:' + echo "$git_status" + echo ---------------------------------------------------------------------- + return 1 + fi + + git commit -am 'bump dependencies' + git push -q + echo ---------------------------------------------------------------------- +} + +main() { + cd -- "$script_dir/.." + update_gems + update_npm_packages + browserify + push_changes +} + +main -- cgit v1.3