#!/bin/sh echo "Running pre-commit hook..." # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ">> Updating R documentation..." if command -v Rscript > /dev/null; then if [ "$(Rscript -e 'cat(all(c('"'pkgload'"', '"'devtools'"', '"'dplyr'"', '"'styler'"') %in% rownames(installed.packages())))')" = "TRUE" ]; then Rscript -e "source('data-raw/_pre_commit_hook.R')" currentpkg=`Rscript -e "cat(pkgload::pkg_name())"` echo ">> Adding all files in folders 'data-raw', 'inst', 'man', and 'R' to this git commit" git add data-raw/* git add inst/* git add man/* git add R/* else echo ">> R package 'pkgload', 'devtools', 'dplyr', or 'styler' not installed!" currentpkg="your" fi else echo ">> R is not available on your system!" currentpkg="your" fi echo ">> " # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ">> Updating semantic versioning and date..." # get tags from remote, and remove tags not on remote: git fetch origin --prune --prune-tags --quiet currenttagfull=`git describe --tags --abbrev=0` currenttag=`git describe --tags --abbrev=0 | sed 's/v//'` if [ "$currenttag" = "" ]; then # there is no tag, so set tag to 0.0.1 and commit index to current count echo ">> - no git tags found, create one in this format: 'v(x).(y).(z)'!" currenttag="0.0.1" currentcommit=`git rev-list --count HEAD` else # there is a tag, so base version number on that currentcommit=`git rev-list --count ${currenttagfull}..HEAD` if (( "$currentcommit" == 0 )); then # tag is new, so this must become the version number currentversion="$currenttag" fi echo ">> - latest tag is '${currenttagfull}', with ${currentcommit} previous commits" fi if [ "$currentversion" = "" ]; then # combine tag (e.g. 1.2.3) and commit number (like 5) increased by 9000 to indicate beta version currentversion="$currenttag.$((currentcommit + 9001))" # results in e.g. 1.2.3.9005 fi echo ">> - ${currentpkg} pkg version set to ${currentversion}" # set version number and date to DESCRIPTION file sed -i -- "s/^Version: .*/Version: ${currentversion}/" DESCRIPTION sed -i -- "s/^Date: .*/Date: $(date '+%Y-%m-%d')/" DESCRIPTION echo ">> - updated DESCRIPTION" # remove leftover on macOS rm -f DESCRIPTION-- # add to commit git add DESCRIPTION # set version number to NEWS file if [ -e "NEWS.md" ]; then if [ "$currentpkg" = "your" ]; then currentpkg="" fi sed -i -- "1s/.*/# ${currentpkg} ${currentversion}/" NEWS.md echo ">> - updated NEWS.md" # remove leftover on macOS rm -f NEWS.md-- # add to commit git add NEWS.md else echo ">> - no NEWS.md found!" fi echo ">> "