Skip to content
Bash With Nails
Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Update man.md Oct 27, 2016
modules closes #26 ... circular dependencies result in an error and exit with… Oct 15, 2016
sample_repo Closes #1 Oct 13, 2015
vars
.travis.yml - use containerized travis Nov 18, 2015
LICENSE
README.md Update README.md Oct 13, 2015
app.sh Initial commit Sep 29, 2015
bootstrap.sh Merge pull request #25 from mindaugasbarysas/testing Nov 18, 2015
test-coverage.sh - added fast code coverage stats Nov 16, 2015
tests.sh - minor refactor of function replaceability checking Nov 18, 2015

README.md

Bash With Nails

Build Status

Bash With Nails (rhymes with ruby on rails) is a bash framework written for fun and profit.

I'm kidding about the fun and profit part.

It has:

  • loading of bash function collections in separate "modules".
  • dependency management and automatic loading of relevant "modules".
  • separate "modules" can have separate "namespaces", prefixing function names and non-global variables, e.g. mymodule::myfunction.
  • if you want to refer to your own namespace, you can use this::myfunction in your module.
  • named function parameters, e.g. function myfunction(a b c) { echo "$a $b $c"; }.
  • weak OOP support, e.g. oop::new oop_demo '1 2' 'obj_one'; oop::new oop_demo '3 4' 'obj_two'; oop::call 'obj_one' sum ""; oop::call 'obj_two' sum ""; oop::destroy 'obj_two' ''
  • modules can be downloaded from the repository (as seen in sample_repo folder)
  • tests of unit kind, kind of :) (yes, it works with travis)

see Docs or clone and run for more information.

How to run

./app.sh

and see all the magic described above happen.

Why "with nails"?

Because

cursed hammer

So it's only natural you want nails with that. Or you can keep on bashing your thumbs - it's a free world!

You can’t perform that action at this time.