go-snippet

What is go-snippet?

You can define snippets which are inserted at files at places you want them to be.

Why go-snippet?

I have a bunch of bash scripts taht often use common functions. Instead of including all or having copies of a global include file in different repositories I wanted to be able to choose what to include and have an easier way to keep it in sync.

Give me an example

Suppose you write a lot of bash scripts and want headers in them. Instead of repeating the echos you write a function. As you do this over and over again, this is a good thing for a snippet.

So let’s assume we have a snippet like this asved as header.sh in your snippetdir:

echo
echo "*** $1 ***" echo } You would then write a bash script like this: #! /bin/bash #### header.sh ### header "Hello world!" A call to go-snippet bash --file myfile.sh would generate the following file: #! /bin/bash #### header.sh ### function header () { echo echo "***$1 ***"
echo
}

Here we go, a working script! Suppose you do not like to have stars but minus signs, so you change the snippet to:

echo "--- $1 ---" echo } Run the tooling again and you get: #! /bin/bash #### header.sh ### function header () { echo echo "---$1 ---"