https://github.com/xsc/bashing
Smashing Bash into Pieces
https://github.com/xsc/bashing
Last synced: 9 months ago
JSON representation
Smashing Bash into Pieces
- Host: GitHub
- URL: https://github.com/xsc/bashing
- Owner: xsc
- License: mit
- Created: 2013-05-31T15:07:44.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2020-02-13T13:42:24.000Z (almost 6 years ago)
- Last Synced: 2024-04-13T20:16:08.872Z (over 1 year ago)
- Language: Shell
- Homepage:
- Size: 78.1 KB
- Stars: 75
- Watchers: 4
- Forks: 9
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-bash - bashing - Smashing Bash into Pieces - Bash framework for creating command line tools. (Shell Script Development)
- fucking-awesome-shell - bashing - Smashing Bash into Pieces (Shell Package Management / Directory Navigation)
- awesome-shell - bashing - Smashing Bash into Pieces (Shell Package Management / Directory Navigation)
README
# bashing
__bashing__ is a small tool that let's you create single-file [Bash](http://www.gnu.org/software/bash/)
tools in a multi-file way.
Current stable Version: __0.2.2__
## Setup
### Dependencies
bashing needs the GNU variant of `sed` to function properly. If you're on MacOS
you can use e.g. Homebrew to install the package `gnu-sed`.
### Installation
```bash
mkdir -p ~/.bin
curl -ko ~/.bin/bashing https://raw.github.com/xsc/bashing/stable/bin/bashing
chmod +x ~/.bin/bashing
```
Make sure `~/.bin` is on your `$PATH`, e.g. by adding `export PATH="$PATH:~/.bin"` to your
`.bashrc`.
## Usage
Have a look at the [wiki](https://github.com/xsc/bashing/wiki) and the
[Quickstart Tutorial](https://github.com/xsc/bashing/wiki/Quickstart-Tutorial). And if you want to examine
a full-fledged Bashing project, why not [Bashing itself](https://github.com/xsc/bashing/tree/master/src)?
```bash
$ bashing new greet
Initializing ./greet ...
Successfully initialized './greet'.
$ cd greet
$ bashing new.task hi
Created Task 'hi'
$ bashing run hi
Hello from Task 'hi'
$ bashing uberbash
Creating /git/public/shell/greet/target/greet-0.1.0-SNAPSHOT.sh ...
Uberbash created successfully.
$ ./target/greet-0.1.0-SNAPSHOT.sh
Usage: ./target/greet-0.1.0-SNAPSHOT.sh [ ...]
hello : (no help available)
help : display this help message
hi : (no help available)
version : display version
$ ./target/greet-0.1.0-SNAPSHOT.sh hi
Hello from Task 'hi'
$ ./target/greet-0.1.0-SNAPSHOT.sh version
greet 0.1.0-SNAPSHOT (bash 4.2.25(1)-release)
$ bashing install
Creating /git/public/shell/greet/target/greet-0.1.0-SNAPSHOT.sh ...
Uberbash created successfully.
Deploying to /home/yannick/.bin/greet ...
Deployed successfully.
$ greet version
greet 0.1.0-SNAPSHOT (bash 4.2.25(1)-release)
```
## Bashing Bashing
To build bashing, check out this repository and run:
```
$ ./bin/bashing uberbash
Creating /git/public/bashing/target/bashing-0.1.0-SNAPSHOT.sh ...
Uberbash created successfully.
```
This will create a standalone bashing script using bashing itself!
## License
Copyright © 2013-2015 Yannick Scherer
Bashing is distributed under the MIT License.