From 36dfb88ea8d25f1364a9b767efa677828d32dfe8 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Wed, 25 Oct 2017 19:05:15 -0200 Subject: Rename project to templater --- project | 238 -------------------------------------------------------------- templater | 238 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 238 insertions(+), 238 deletions(-) delete mode 100755 project create mode 100755 templater diff --git a/project b/project deleted file mode 100755 index 1d596c2..0000000 --- a/project +++ /dev/null @@ -1,238 +0,0 @@ -#!/bin/bash -# -# Setup a new code project. -# - -# Parameters -PROGRAM="$0" -BASENAME="`basename $0`" -PROJECT="$1" -shift -MODULES="$*" -BOOTSTRAP="https://git.fluxo.info/puppet-bootstrap.git" -TEMPLATES="https://git.fluxo.info/templates.git" - -# Read a parameter from user -function __project_ask { - local input - local function="$1" - local default="n" - shift 2 - - read -rep "Setup $function? (defaults to $default): " input - - if [ "$input" == "y" ]; then - project_$function - fi -} - -# Return list of implementations -function __project_implementations { - # Do not sort this list: the order in which functions are present in the code is important - grep "^function project_" $PROGRAM | cut -d ' ' -f 2 | sed -e 's/project_//' -} - -# Checkout to develop branch if available -function __project_checkout_develop { - ( - cd $PROJECT - - if git branch --list develop | grep -q develop; then - git checkout develop - fi - ) -} - -# Initialize project -function __project_init { - if [ ! -d "$PROJECT" ]; then - echo "Initializing $PROJECT..." - mkdir -p $PROJECT - fi -} - -# Git implementation -function project_git { - if [ ! -d "$PROJECT/.git" ]; then - ( - cd $PROJECT - touch .gitignore - - echo "$PROJECT" > README.md - echo "=========`echo $PROJECT | sed -e 's|.|=|g'`" >> README.md - echo "" >> README.md - echo "This is the $PROJECT repository." >> README.md - - echo "TODO" > TODO.md - echo "====" >> TODO.md - echo "" >> TODO.md - echo "* Nothing here? :P" >> TODO.md - - git init - git add . - git commit -m "Initial import" - - if which git-hooks &> /dev/null; then - echo "" - echo "Installing hooks..." - git hooks --install - fi - ) - fi -} - -# Setup git-flow implementation -function project_gitflow { - if ! grep -q '^\[gitflow' $PROJECT/.git/config; then - ( - cd $PROJECT - - if ! git branch --list develop | grep -q develop; then - git branch develop - - if [ -e "/usr/lib/git-core/git-flow" ]; then - echo "" - echo "Setting up git-flow..." - git flow init -d - fi - fi - ) - fi -} - -# Vagrant implementation -function project_vagrant { - if [ ! -e "$PROJECT/Vagrantfile" ]; then - ( - echo "" - echo "Setting up vagrant implementation..." - cd $PROJECT - #__project_checkout_develop - vagrant init - echo '.vagrant' >> .gitignore - git commit -a -m "Adds vagrant support" - ) - fi -} - -# KVMX implementation -function project_kvmx { - if [ ! -e "$PROJECT/kvmxfile" ]; then - ( - echo "" - echo "Setting up vagrant implementation..." - cd $PROJECT - kvmx init - git commit -a -m "Adds kvmx support" - ) - fi -} - -# Puppet implementation -function project_puppet { - if [ ! -d "$PROJECT/puppet" ]; then - ( - echo "" - echo "Setting up puppet implementation..." - cd $PROJECT - - # Use the best approach - #git clone $BOOSTRAP $PROJECT/puppet - #git submodule add $BOOSTRAP puppet - git remote add puppet $BOOTSTRAP - git subtree add --prefix puppet $BOOTSTRAP master --squash - ) - fi -} - -# Ikiwiki implementation -function project_ikiwiki { - ( - if [ ! -d "$HOME/file/templates" ]; then - echo "Please clone $TEMPLATES into $HOME/file/templates" - else - echo "" - echo "Setting up ikiwiki implementation..." - cd $PROJECT - #__project_checkout_develop - - if [ ! -e ".gitignore" ]; then - cp $HOME/file/templates/ikiwiki/.gitignore . - elif ! grep -q -f $HOME/file/templates/ikiwiki/.gitignore .gitignore; then - cat $HOME/file/templates/ikiwiki/.gitignore >> .gitignore - fi - - if [ ! -e "index.mdwn" ]; then - cp $HOME/file/templates/ikiwiki/index.mdwn . - fi - - if [ ! -e "ikiwiki.setup" ]; then - cp $HOME/file/templates/ikiwiki/ikiwiki.setup . - fi - - if [ ! -e "Makefile" ]; then - cp $HOME/file/templates/ikiwiki/Makefile . - elif ! grep -q ^wiki: Makefile; then - grep -v '^#' $HOME/file/templates/ikiwiki/Makefile >> Makefile - fi - - if [ ! -d "templates" ]; then - cp -r $HOME/file/templates/ikiwiki/templates . - fi - - if [ ! -d "bootstrap" ]; then - cp -r $HOME/file/templates/ikiwiki/bootstrap . - fi - - git add . - git commit -a -m "Static site generation support using ikiwiki" - fi - ) -} - -# Sphinx implementation -function project_sphinx { - echo "TODO: sphinx" - true -} - -# Pelican implementation -function project_pelican { - echo "TODO: pelican" - true -} - -# Hugo implementation -function project_hugo { - echo "TODO: hugo" - true -} - -# Syntax check -if [ -z "$PROJECT" ]; then - echo "$BASENAME: create a new project folder and/or setup helper utilities" - echo "" - echo "usage: $BASENAME [ ... ]" - echo "available modules:" - echo "" - __project_implementations | xargs -L 6 | column -t -c 6 | sed -e 's/^/\t/' - echo "" - exit 1 -fi - -# Initialize -__project_init - -# Setup modules -if [ ! -z "$MODULES" ]; then - for project in `__project_implementations`; do - __project_ask $project - done -else - for module in $MODULES; do - project_$module - done -fi - -# Teardown -echo "Done processing the project :)" diff --git a/templater b/templater new file mode 100755 index 0000000..03b1448 --- /dev/null +++ b/templater @@ -0,0 +1,238 @@ +#!/bin/bash +# +# Setup a new code project. +# + +# Parameters +PROGRAM="$0" +BASENAME="`basename $0`" +PROJECT="$1" +shift +MODULES="$*" +BOOTSTRAP="https://git.fluxo.info/puppet-bootstrap.git" +TEMPLATES="https://git.fluxo.info/templates.git" + +# Read a parameter from user +function __templater_ask { + local input + local function="$1" + local default="n" + shift 2 + + read -rep "Setup $function? (defaults to $default): " input + + if [ "$input" == "y" ]; then + templater_$function + fi +} + +# Return list of implementations +function __templater_implementations { + # Do not sort this list: the order in which functions are present in the code is important + grep "^function templater_" $PROGRAM | cut -d ' ' -f 2 | sed -e 's/templater_//' +} + +# Checkout to develop branch if available +function __templater_checkout_develop { + ( + cd $PROJECT + + if git branch --list develop | grep -q develop; then + git checkout develop + fi + ) +} + +# Initialize project +function __templater_init { + if [ ! -d "$PROJECT" ]; then + echo "Initializing $PROJECT..." + mkdir -p $PROJECT + fi +} + +# Git implementation +function templater_git { + if [ ! -d "$PROJECT/.git" ]; then + ( + cd $PROJECT + touch .gitignore + + echo "$PROJECT" > README.md + echo "=========`echo $PROJECT | sed -e 's|.|=|g'`" >> README.md + echo "" >> README.md + echo "This is the $PROJECT repository." >> README.md + + echo "TODO" > TODO.md + echo "====" >> TODO.md + echo "" >> TODO.md + echo "* Nothing here? :P" >> TODO.md + + git init + git add . + git commit -m "Initial import" + + if which git-hooks &> /dev/null; then + echo "" + echo "Installing hooks..." + git hooks --install + fi + ) + fi +} + +# Setup git-flow implementation +function templater_gitflow { + if ! grep -q '^\[gitflow' $PROJECT/.git/config; then + ( + cd $PROJECT + + if ! git branch --list develop | grep -q develop; then + git branch develop + + if [ -e "/usr/lib/git-core/git-flow" ]; then + echo "" + echo "Setting up git-flow..." + git flow init -d + fi + fi + ) + fi +} + +# Vagrant implementation +function templater_vagrant { + if [ ! -e "$PROJECT/Vagrantfile" ]; then + ( + echo "" + echo "Setting up vagrant implementation..." + cd $PROJECT + #__templater_checkout_develop + vagrant init + echo '.vagrant' >> .gitignore + git commit -a -m "Adds vagrant support" + ) + fi +} + +# KVMX implementation +function templater_kvmx { + if [ ! -e "$PROJECT/kvmxfile" ]; then + ( + echo "" + echo "Setting up vagrant implementation..." + cd $PROJECT + kvmx init + git commit -a -m "Adds kvmx support" + ) + fi +} + +# Puppet implementation +function templater_puppet { + if [ ! -d "$PROJECT/puppet" ]; then + ( + echo "" + echo "Setting up puppet implementation..." + cd $PROJECT + + # Use the best approach + #git clone $BOOSTRAP $PROJECT/puppet + #git submodule add $BOOSTRAP puppet + git remote add puppet $BOOTSTRAP + git subtree add --prefix puppet $BOOTSTRAP master --squash + ) + fi +} + +# Ikiwiki implementation +function templater_ikiwiki { + ( + if [ ! -d "$HOME/file/templates" ]; then + echo "Please clone $TEMPLATES into $HOME/file/templates" + else + echo "" + echo "Setting up ikiwiki implementation..." + cd $PROJECT + #__templater_checkout_develop + + if [ ! -e ".gitignore" ]; then + cp $HOME/file/templates/ikiwiki/.gitignore . + elif ! grep -q -f $HOME/file/templates/ikiwiki/.gitignore .gitignore; then + cat $HOME/file/templates/ikiwiki/.gitignore >> .gitignore + fi + + if [ ! -e "index.mdwn" ]; then + cp $HOME/file/templates/ikiwiki/index.mdwn . + fi + + if [ ! -e "ikiwiki.setup" ]; then + cp $HOME/file/templates/ikiwiki/ikiwiki.setup . + fi + + if [ ! -e "Makefile" ]; then + cp $HOME/file/templates/ikiwiki/Makefile . + elif ! grep -q ^wiki: Makefile; then + grep -v '^#' $HOME/file/templates/ikiwiki/Makefile >> Makefile + fi + + if [ ! -d "templates" ]; then + cp -r $HOME/file/templates/ikiwiki/templates . + fi + + if [ ! -d "bootstrap" ]; then + cp -r $HOME/file/templates/ikiwiki/bootstrap . + fi + + git add . + git commit -a -m "Static site generation support using ikiwiki" + fi + ) +} + +# Sphinx implementation +function templater_sphinx { + echo "TODO: sphinx" + true +} + +# Pelican implementation +function templater_pelican { + echo "TODO: pelican" + true +} + +# Hugo implementation +function templater_hugo { + echo "TODO: hugo" + true +} + +# Syntax check +if [ -z "$PROJECT" ]; then + echo "$BASENAME: create a new project folder and/or setup helper utilities" + echo "" + echo "usage: $BASENAME [ ... ]" + echo "available modules:" + echo "" + __templater_implementations | xargs -L 6 | column -t -c 6 | sed -e 's/^/\t/' + echo "" + exit 1 +fi + +# Initialize +__templater_init + +# Setup modules +if [ ! -z "$MODULES" ]; then + for project in `__templater_implementations`; do + __templater_ask $project + done +else + for module in $MODULES; do + templater_$module + done +fi + +# Teardown +echo "Done processing the project :)" -- cgit v1.2.3