summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarit.de>2021-06-26 08:46:20 +0200
committerMarkus Heiser <markus.heiser@darmarit.de>2021-06-26 13:45:25 +0200
commit25b6309cf248a1c5c092780e98107d281999bd85 (patch)
tree77d2e623dd183d2a963a555ef22375ca67af98e1 /utils
parent03d5d14d98b06ce4d4a35f715b17eaccc4da7f86 (diff)
downloadsearxng-25b6309cf248a1c5c092780e98107d281999bd85.tar.gz
searxng-25b6309cf248a1c5c092780e98107d281999bd85.zip
[mod] move functions from utils/manage_static.sh to ./manage script
The functions: - static.build.commit - static.build.commit.drop - static.build.restore are imported into the ./manage script. To avoid name collisions some variables and fucntions has been renamed by adding the prefix *static_*. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'utils')
-rwxr-xr-xutils/lib_static.sh124
-rwxr-xr-xutils/manage_static.sh133
2 files changed, 124 insertions, 133 deletions
diff --git a/utils/lib_static.sh b/utils/lib_static.sh
new file mode 100755
index 000000000..0d4ba9bad
--- /dev/null
+++ b/utils/lib_static.sh
@@ -0,0 +1,124 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: AGPL-3.0-or-later
+
+
+STATIC_BUILD_COMMIT="[build] /static"
+STATIC_BUILT_PATHS=(
+ searx/static/themes/oscar/css
+ searx/static/themes/oscar/js
+ searx/static/themes/oscar/src/generated/pygments-logicodev.less
+ searx/static/themes/oscar/src/generated/pygments-pointhi.less
+ searx/static/themes/simple/css
+ searx/static/themes/simple/js
+ searx/static/themes/simple/src/generated/pygments.less
+)
+
+static_help(){
+ cat <<EOF
+static.build.: ${STATIC_BUILD_COMMIT}
+ commit : build & commit /static folder
+ drop : drop last commit if it was previously done by static.build.commit
+ restore : git restore of the /static folder (after themes.all)
+EOF
+}
+
+is.static.build.commit() {
+
+ local commit_sha="$1"
+ local commit_message
+ local commit_files
+
+ # check commit message
+ commit_message=$(git show -s --format=%s "${commit_sha}")
+ if [ "${commit_message}" != "${STATIC_BUILD_COMMIT}" ]; then
+ err_msg "expecting commit message: '${STATIC_BUILD_COMMIT}'"
+ err_msg "commit message of ${commit_sha} is: '${commit_message}'"
+ return 1
+ fi
+
+ # check all files of the commit belongs to $STATIC_BUILT_PATHS
+ commit_files=$(git diff-tree --no-commit-id --name-only -r "${commit_sha}")
+ for i in ${STATIC_BUILT_PATHS[*]}; do
+ # remove files of ${STATIC_BUILT_PATHS}
+ commit_files=$(echo "${commit_files}" | grep -v "^${i}")
+ done
+
+ if [ -n "${commit_files}" ]; then
+ err_msg "commit ${commit_sha} contains files not a part of ${STATIC_BUILD_COMMIT}"
+ echo "${commit_files}" | prefix_stdout " "
+ return 2
+ fi
+ return 0
+}
+
+static.build.drop() {
+ # drop last commit if it was made by the static.build.commit command
+
+ local last_commit_id
+ local branch
+
+ build_msg STATIC "drop last commit if it was previously done by static.build.commit"
+
+ # get only last (option -n1) local commit not in remotes
+ branch="$(git branch --show-current)"
+ last_commit_id="$(git log -n1 "${branch}" --pretty=format:'%h'\
+ --not --exclude="${branch}" --branches --remotes)"
+
+ if [ -z "${last_commit_id}" ]; then
+ err_msg "there are no local commits"
+ return 1
+ fi
+
+ if ! is.static.build.commit "${last_commit_id}"; then
+ return $?
+ fi
+
+ build_msg STATIC "drop last commit ${last_commit_id}"
+ git reset --hard HEAD~1
+}
+
+static.build.commit() {
+ # call the "static.build.drop" command, then "themes.all" then commit the
+ # built files ($BUILT_PATHS).
+
+ build_msg STATIC "build & commit /static files"
+
+ # check for not commited files
+ if [ -n "$(git diff --name-only)" ]; then
+ err_msg "some files are not commited:"
+ git diff --name-only | prefix_stdout " "
+ return 1
+ fi
+
+ # check for staged files
+ if [ -n "$(git diff --name-only --cached)" ]; then
+ err_msg "some files are staged:"
+ git diff --name-only --cached | prefix_stdout " "
+ return 1
+ fi
+
+ # drop existing commit from previos build
+ static.build.drop &>/dev/null
+
+ ( set -e
+ # build the themes
+ themes.all
+
+ # add build files
+ for built_path in "${STATIC_BUILT_PATHS[@]}"; do
+ git add -v "${built_path}"
+ done
+
+ # check for modified files that are not staged
+ if [ -n "$(git diff --name-only)" ]; then
+ die 42 "themes.all has created files that are not in STATIC_BUILT_PATHS"
+ fi
+ git commit -m "${STATIC_BUILD_COMMIT}"
+ )
+}
+
+static.build.restore() {
+ build_msg STATIC "git-restore of the built files (/static)"
+ git restore --staged "${STATIC_BUILT_PATHS[@]}"
+ git restore --worktree "${STATIC_BUILT_PATHS[@]}"
+}
diff --git a/utils/manage_static.sh b/utils/manage_static.sh
deleted file mode 100755
index dc0fe2fed..000000000
--- a/utils/manage_static.sh
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/usr/bin/env bash
-# SPDX-License-Identifier: AGPL-3.0-or-later
-
-BUILD_COMMIT_MESSAGE="[build] /static"
-
-BUILT_PATHS=(
- searx/static/themes/oscar/css
- searx/static/themes/oscar/js
- searx/static/themes/oscar/src/generated/pygments-logicodev.less
- searx/static/themes/oscar/src/generated/pygments-pointhi.less
- searx/static/themes/simple/css
- searx/static/themes/simple/js
- searx/static/themes/simple/src/generated/pygments.less
-)
-
-is.build.commit() {
- local commit_sha="$1"
- local commit_message
- local commit_files
-
- # check commit message
- commit_message=$(git show -s --format=%s "${commit_sha}")
- if [ "${commit_message}" != "${BUILD_COMMIT_MESSAGE}" ]; then
- echo "Commit message of ${commit_sha} is '${commit_message}'"
- return 1
- fi
-
- # check all files of the commit belongs to $BUILT_PATHS
- commit_files=$(git diff-tree --no-commit-id --name-only -r "${commit_sha}")
- for i in ${BUILT_PATHS[*]}; do
- # remove files of ${BUILT_PATHS}
- commit_files=$(echo "${commit_files}" | grep -v "^${i}")
- done
-
- if [ -n "${commit_files}" ]; then
- echo "Commit $1 contains files that were not build: ${commit_files}"
- return 2
- fi
- return 0
-}
-
-
-static.build.commit.drop() {
- local last_commit_id
- local branch
-
- # get only last (option -n1) local commit not in remotes
- branch="$(git branch --show-current)"
- last_commit_id="$(git log -n1 "${branch}" --pretty=format:'%h'\
- --not --exclude="${branch}" --branches --remotes)"
-
- if [ -z "${last_commit_id}" ]; then
- echo "Empty branch"
- return 1
- fi
-
- if ! is.build.commit "${last_commit_id}"; then
- return $?
- fi
- echo "Drop last commit ${last_commit_id}"
- git reset --hard HEAD~1
-}
-
-static.build.commit() {
- local staged_files
-
- # check for not commited files
- if [ -n "$(git diff --name-only)" ]; then
- echo "Some files are not commited:"
- echo "${NOT_COMMITED_FILES}"
- return 1
- fi
-
- staged_files=$(git diff --name-only --cached)
-
- # check for staged files
- if [ -n "${staged_files}" ]; then
- echo "Some files are staged:"
- echo "${staged_files}"
- return 1
- fi
-
- # drop existing commit
- if static.commit.drop; then
- return $?
- fi
-
- (
- set -e
- # build the themes
- make themes.all
-
- # add build files
- for built_path in "${BUILT_PATHS[@]}"; do
- git add -v "${built_path}"
- done
-
- # check for modified files that are not staged
- if [ -n "$(git diff --name-only)" ]; then
- echo "make themes.all has created files that are not in BUILT_PATHS"
- return 2
- fi
- git commit -m "${BUILD_COMMIT_MESSAGE}"
- )
-}
-
-
-main() {
- case $1 in
- static.build.commit.drop)
- # drop last commit if it was made by the "commit" command
- static.build.commit.drop
- ;;
- static.build.commit)
- # call the "static.build.commit.drop" command,
- # then "make themes.all"
- # then commit the built files ($BUILT_PATHS).
- static.build.commit
- ;;
- static.git.restore.staged)
- # after "git add ."
- # remove the built files
- # so only the source are commited
- git restore --staged "${BUILT_PATHS[@]}"
- ;;
- static.git.restore)
- # "git restore" of the built files.
- git restore --worktree --staged "${BUILT_PATHS[@]}"
- ;;
- esac
-}
-
-main "$@"