#!/bin/sh echo "Running pre-commit hook..." # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ">> Updating R documentation..." if command -v Rscript > /dev/null; then if [ "$(Rscript -e 'cat(all(c('"'roxygen2'"', '"'pkgload'"') %in% rownames(installed.packages())))')" = "TRUE" ]; then Rscript -e "suppressMessages(roxygen2::roxygenise())" currentpkg=`Rscript -e "cat(pkgload::pkg_name())"` git add man/* echo ">> done." else echo ">> R packages 'roxygen2' and 'pkgload' are 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 some using 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 ">> "