Merge gem-build & bump tool

Drop the yard doc
This commit is contained in:
Cotes Chung 2021-01-28 22:32:54 +08:00
parent 5c04d4e45b
commit c9765e6923
2 changed files with 44 additions and 37 deletions

View file

@ -1,13 +1,17 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# Bump latest version to # 1. Bump latest version number to files:
# - _sass/jekyll-theme-chirpy.scss # - _sass/jekyll-theme-chirpy.scss
# - assets/js/.copyright.js # - assets/js/.copyright.js
# - assets/js/dist/*.js # - assets/js/dist/*.js (will be built by gulp later)
# - jekyll-theme-chirpy.gemspec # - jekyll-theme-chirpy.gemspec
# - package.json # - package.json
# #
# Required: gulp # 2. Create a git-tag
#
# 3. Build a rubygem package
#
# Requires: gulp, rubygem
set -eu set -eu
@ -20,7 +24,28 @@ GEM_SPEC="jekyll-theme-chirpy.gemspec"
NODE_META="package.json" NODE_META="package.json"
bump_assets() { _check_src() {
if [[ ! -f $1 && ! -d $1 ]]; then
echo -e "Error: missing file \"$1\"!\n"
exit -1
fi
}
check() {
if [[ -n $(git status . -s) ]]; then
echo "Warning: commit unstaged files first, and then run this tool againt."
exit -1
fi
for i in "${!ASSETS[@]}"; do
_check_src "${ASSETS[$i]}"
done
_check_src "$NODE_META"
_check_src "$GEM_SPEC"
}
_bump_assets() {
_version="$1" _version="$1"
for i in "${!ASSETS[@]}"; do for i in "${!ASSETS[@]}"; do
sed -i "s/v[[:digit:]]\.[[:digit:]]\.[[:digit:]]/v$_version/" "${ASSETS[$i]}" sed -i "s/v[[:digit:]]\.[[:digit:]]\.[[:digit:]]/v$_version/" "${ASSETS[$i]}"
@ -29,20 +54,20 @@ bump_assets() {
gulp gulp
} }
bump_gemspec() { _bump_gemspec() {
sed -i "s/[[:digit:]]\.[[:digit:]]\.[[:digit:]]/$1/" "$GEM_SPEC" sed -i "s/[[:digit:]]\.[[:digit:]]\.[[:digit:]]/$1/" "$GEM_SPEC"
} }
bump_node() { _bump_node() {
sed -i \ sed -i \
"s,[\"]version[\"]: [\"][[:digit:]]\.[[:digit:]]\.[[:digit:]][\"],\"version\": \"$1\"," \ "s,[\"]version[\"]: [\"][[:digit:]]\.[[:digit:]]\.[[:digit:]][\"],\"version\": \"$1\"," \
$NODE_META $NODE_META
} }
bump() { bump() {
bump_assets "$1" _bump_assets "$1"
bump_gemspec "$1" _bump_gemspec "$1"
bump_node "$1" _bump_node "$1"
if [[ -n $(git status . -s) ]]; then if [[ -n $(git status . -s) ]]; then
git add . git add .
@ -50,11 +75,12 @@ bump() {
fi fi
} }
build_gem() {
gem build "$GEM_SPEC"
}
main() { main() {
if [[ -n $(git status . -s) ]]; then check
echo "Warning: commit unstaged files first, and then run this tool againt."
exit -1
fi
_latest_tag="$(git describe --tags --abbrev=0)" _latest_tag="$(git describe --tags --abbrev=0)"
@ -69,15 +95,18 @@ main() {
exit -1 exit -1
fi fi
echo "Bump version to $_version" echo -e "Bump version to $_version\n"
bump "$_version" bump "$_version"
echo "Create tag v$_version" echo -e "Create tag v$_version\n"
git tag "v$_version" git tag "v$_version"
build_gem
else else
echo "Error: Illegal version number: '$_version'" echo "Error: Illegal version number: '$_version'"
fi fi
} }

View file

@ -1,22 +0,0 @@
#!/usr/bin/env bash
#
# Create a ruby-gem pakcage with doc
#
# Required: rubygem, yard
set -eu
GEM_CONFIG="./jekyll-theme-chirpy.gemspec"
if [[ ! -f $GEM_CONFIG ]]; then
echo "Error: .gemspec file not found!"
exit -1
fi
if [[ -d doc ]]; then
rm -rf doc
fi
yard doc
gem build "$GEM_CONFIG"