Skip to content
Bash With Nails
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Update 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
.travis.yml - use containerized travis Nov 18, 2015
LICENSE Update Oct 13, 2015 Initial commit Sep 29, 2015 Merge pull request #25 from mindaugasbarysas/testing Nov 18, 2015 - added fast code coverage stats Nov 16, 2015 - minor refactor of function replaceability checking Nov 18, 2015

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


and see all the magic described above happen.

Why "with nails"?


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.