Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mindaugasbarysas/bashwithnails
Bash With Nails
https://github.com/mindaugasbarysas/bashwithnails
Last synced: about 2 months ago
JSON representation
Bash With Nails
- Host: GitHub
- URL: https://github.com/mindaugasbarysas/bashwithnails
- Owner: mindaugasbarysas
- License: gpl-2.0
- Created: 2015-09-29T20:31:39.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-07-21T09:29:34.000Z (11 months ago)
- Last Synced: 2024-01-08T13:01:06.896Z (5 months ago)
- Language: Shell
- Homepage:
- Size: 58.6 KB
- Stars: 34
- Watchers: 6
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-shell - bashwithnails - a Bash framework written just for fun with testing, dependency management & packaging (Shell Script Development / Directory Navigation)
- awesome-shell - bashwithnails - a Bash framework written just for fun with testing, dependency management & packaging (Shell Script Development / Directory Navigation)
- awesome-shell - bashwithnails - a Bash framework written just for fun with testing, dependency management & packaging (Shell Script Development)
README
# Bash With Nails
[![Build Status](https://travis-ci.org/mindaugasbarysas/bashwithnails.svg?branch=master)](https://travis-ci.org/mindaugasbarysas/bashwithnails)
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](https://github.com/mindaugasbarysas/bashwithnails/blob/master/docs/man.md) 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](http://i.imgur.com/6qZcv6j.jpg?fb)
So it's only natural you want nails with that. Or you can keep on bashing your thumbs - it's a free world!