web/tools/init.sh

96 lines
1.5 KiB
Bash
Raw Normal View History

2020-01-01 20:21:43 +03:00
#!/bin/bash
#
# Initial the Categories/Tags pages and Lastmod for posts.
2020-01-02 16:17:49 +03:00
# v2.0
# https://github.com/cotes2020/jekyll-theme-chirpy
2020-01-01 20:21:43 +03:00
# © 2019 Cotes Chung
# Published under MIT License
set -eu
CATEGORIES=false
TAGS=false
LASTMOD=false
WORK_DIR=$(dirname $(dirname $(realpath "$0")))
check_status() {
2020-04-09 22:15:51 +03:00
local _watching_dirs=(
"_post"
"_data")
for i in "${!_watching_dirs[@]}"
do
local _dir=${_watching_dirs[${i}]}
if [[ ! -z $(git status $_dir -s) ]]; then
echo "Warning: Commit the changes of the directory '$_dir' first."
git status -s | grep $_dir
exit 1
fi
done
2020-01-01 20:21:43 +03:00
}
update_files() {
2020-04-09 22:15:51 +03:00
bash _scripts/sh/create_pages.sh
bash _scripts/sh/dump_lastmod.sh
2020-01-01 20:21:43 +03:00
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf
}
commit() {
msg="Updated"
if [[ ! -z $(git status categories -s) ]]; then
git add categories/
msg+=" the Categories"
CATEGORIES=true
fi
if [[ ! -z $(git status tags -s) ]]; then
git add tags/
if [[ $CATEGORIES = true ]]; then
msg+=","
else
msg+=" the"
fi
msg+=" Tags"
TAGS=true
fi
2020-04-09 22:15:51 +03:00
if [[ ! -z $(git status _data -s) ]]; then
git add _data
2020-01-01 20:21:43 +03:00
if [[ $CATEGORIES = true || $TAGS = true ]]; then
msg+=","
else
msg+=" the"
fi
msg+=" Lastmod"
LASTMOD=true
fi
if [[ $CATEGORIES = true || $TAGS = true || $LASTMOD = true ]]; then
msg+=" for post(s)."
git commit -m "[Automation] $msg"
else
msg="Nothing changed."
fi
echo $msg
}
main() {
cd $WORK_DIR
check_status
update_files
commit
}
main