aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rwxr-xr-x.github/maintenance.sh54
-rw-r--r--Makefile18
2 files changed, 55 insertions, 17 deletions
diff --git a/.github/maintenance.sh b/.github/maintenance.sh
new file mode 100755
index 0000000..0a66204
--- /dev/null
+++ b/.github/maintenance.sh
@@ -0,0 +1,54 @@
+#!/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 ----------------------------------------------------------------------
+}
+
+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
+
+ if [ "$git_status" != ' M Gemfile.lock' ]; 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
+ push_changes
+}
+
+main
diff --git a/Makefile b/Makefile
index 96b4270..c01e791 100644
--- a/Makefile
+++ b/Makefile
@@ -16,23 +16,7 @@ deps: ruby
.PHONY: maintenance
maintenance: ruby
- bundle config set frozen false
- bundle update
-
- @git_status="$$( git status --porcelain=v1 )" && \
- if [ -z "$$git_status" ]; then \
- true; \
- elif [ "$$git_status" = ' M Gemfile.lock' ]; then \
- git commit -am 'bump dependencies' && \
- git push -q; \
- else \
- echo; \
- echo '-----------------------------------------------------------------'; \
- echo 'Error: unrecognized modifications in the repository:'; \
- echo "$$git_status"; \
- echo '-----------------------------------------------------------------'; \
- exit 1; \
- fi
+ ./.github/maintenance.sh
jekyll := bundle exec jekyll