#!/usr/bin/env bash # This script automatically creates custom widget plugin for a given widget class name. # Use customwidget_create.sh QgsColorButton to create QgsColorButtonPlugin files. # It uses author name and email from git config. # Denis Rouzaud # 13.01.2016 set -e # GNU prefix command for mac os support (gsed, gsplit) GP= if [[ "$OSTYPE" =~ darwin* ]]; then GP=g fi CLASSNAME=$1 TODAY=$(date '+%d.%m.%Y') YEAR=$(date '+%Y') AUTHOR=$(git config user.name) EMAIL=$(git config user.email) CLASSUPPER="${CLASSNAME^^}" CLASSLOWER="${CLASSNAME,,}" CLASSWITHOUTQGS=$(${GP}sed 's/^Qgs//' <<< ${CLASSNAME}) DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" declare -a EXT=("cpp" "h") for i in "${EXT[@]}" do DESTFILE=$DIR/../src/customwidgets/${CLASSLOWER}plugin.$i cp "$DIR"/customwidget."$i".template "$DESTFILE" ${GP}sed -i "s/%DATE%/${TODAY}/g" ${DESTFILE} ${GP}sed -i "s/%YEAR%/${YEAR}/g" ${DESTFILE} ${GP}sed -i "s/%AUTHOR%/${AUTHOR}/g" ${DESTFILE} ${GP}sed -i "s/%EMAIL%/${EMAIL}/g" ${DESTFILE} ${GP}sed -i "s/%CLASSUPPERCASE%/${CLASSUPPER}/g" ${DESTFILE} ${GP}sed -i "s/%CLASSLOWERCASE%/${CLASSLOWER}/g" ${DESTFILE} ${GP}sed -i "s/%CLASSMIXEDCASE%/${CLASSNAME}/g" ${DESTFILE} ${GP}sed -i "s/%CLASSWITHOUTQGS%/${CLASSWITHOUTQGS}/g" ${DESTFILE} done