• Stars
    star
    79
  • Rank 408,196 (Top 9 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 11 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Smashing Bash into Pieces

bashing

bashing is a small tool that let's you create single-file 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

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 and the Quickstart Tutorial. And if you want to examine a full-fledged Bashing project, why not Bashing itself?

$ 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 <command> [<parameters> ...]

    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.

More Repositories

1

lein-ancient

Check your Projects for outdated Dependencies
Clojure
561
star
2

pandect

Fast and easy-to-use Message Digest, Checksum and HMAC library for Clojure
Clojure
221
star
3

claro

Powerful Data Access for Clojure
Clojure
142
star
4

thrift-clj

Thrift and Clojure!
Clojure
65
star
5

peripheral

Component & System Creation for Stuart Sierra's Component Library
Clojure
50
star
6

version-clj

Version Number Analysis and Comparison for Clojure(Script)
Clojure
42
star
7

nginx-sidecar-basic-auth

Docker image for an nginx proxy providing HTTP basic auth
Smarty
30
star
8

lexington

[DEPRECATED] A Clojure Lexer (and possibly Parser) Generator
Clojure
29
star
9

invariant

Invariants on Clojure Data Structures
Clojure
26
star
10

jansi-clj

Clojure Wrapper around Jansi (Terminal Colors, Cursor Movement, ...), even for Windows.
Clojure
26
star
11

lein-thriftc

Leiningen Plugin for Apache Thrift
Clojure
25
star
12

codox-theme-rdash

A Modern Look for your Clojure Documentation
CSS
24
star
13

base64-clj

Fast Base64 Encoding/Decoding for Clojure
Clojure
23
star
14

kithara

A Clojure Library for Reliable RabbitMQ Consumers
Clojure
21
star
15

lein-license

Project-Level License Management
Clojure
20
star
16

microbe-vim

A Pathogen-based Vim Plugin Manager for GitHub Repositories
Shell
19
star
17

ronda-schema

HTTP Request/Response Schemas for Clojure + Ring
Clojure
13
star
18

ancient-clj

Version Metadata Retrieval for Maven Artifacts
Clojure
13
star
19

ronda-routing

Middleware-based Routing and Routing-based Middlewares for Clojure + Ring
Clojure
12
star
20

cpath-clj

Collect Files in Classpath Directories
Clojure
10
star
21

minion

Clojure '-main' helper
Clojure
8
star
22

ritual

[DEPRECATED] Database Fixtures for Clojure
Clojure
6
star
23

panoptic

[DEPRECATED] Monitor your Files and Directories for Changes!
Clojure
5
star
24

haxlike

A Java experiment on declarative data fetching
Java
5
star
25

lein-isolate

Dependency Isolation for Leiningen Plugins
Clojure
4
star
26

combit

A Clojure DSL for manipulating fixed-size Containers (e.g. Blocks of Bits)
Clojure
4
star
27

stateful

Stateful Generators for Clojure's test.check
Clojure
4
star
28

claro.circuit-breaker

Circuit-breaker Middleware for Claro Engines
Clojure
3
star
29

thrift-clj-example

Examples for thrift-clj.
Clojure
3
star
30

.dotfiles

config & dots
Shell
2
star
31

clojure-propaganda

A series of annotated Clojure files for showcasing language features
Clojure
1
star
32

fd-multiplex

Multiplexing over C file descriptors. [just an exercise]
C
1
star
33

warsjawa

Code for "Clojure WebApps" at Warsjawa 2014
Clojure
1
star
34

asset-builder

Utility for ClojureScript/JS/CSS Building and Minification
Clojure
1
star
35

midje-teamcity

Midje Emitter for TeamCity
Clojure
1
star
36

lein-testem

Gotta test'em all.
Clojure
1
star
37

graphql-clj-bench

Benchmarks for 'tendant/graphql-clj'
Clojure
1
star
38

yesql-sugar

syntactic sugar for yesql
Clojure
1
star
39

alfred-workflows-nix

Nix
1
star