summaryrefslogtreecommitdiffstats
path: root/sandbox/cobra
diff options
context:
space:
mode:
authoreuer <root@euer.krebsco.de>2012-12-20 03:19:28 +0100
committereuer <root@euer.krebsco.de>2012-12-20 03:19:28 +0100
commit38dbb8ee3867060fddd427d1bb4e57ee0300c8bb (patch)
treeabb7b2ab988934d6ddfbdd0448517b3a957645bf /sandbox/cobra
parent7c1b02b086a8377ad76a46c277a224150c5b85d6 (diff)
parent09dc57b9d5f564d13f80707eefadd845a4aa9aec (diff)
Merge branch 'master' of github.com:krebscode/painload
Diffstat (limited to 'sandbox/cobra')
-rw-r--r--sandbox/cobra/README.md34
-rw-r--r--sandbox/cobra/hello/index.sh1
-rwxr-xr-xsandbox/cobra/index.sh16
3 files changed, 51 insertions, 0 deletions
diff --git a/sandbox/cobra/README.md b/sandbox/cobra/README.md
new file mode 100644
index 00000000..f9bb8026
--- /dev/null
+++ b/sandbox/cobra/README.md
@@ -0,0 +1,34 @@
+
+# usage
+cobra [target...]
+
+# description
+cobra tries to satisfies all specified targets and all of it dependencies.
+
+# targets
+targets can be a lot of different things, e.g. directories
+
+## dirctory targets
+try to do the right thing when the cobra search path contains a directory
+that contains an index.{js,sh,py,etc.} file.
+
+## cobra search path
+like your sh's PATH
+
+## example: cobra as some kind of make
+
+ $ echo $COBRA_PATH
+ .
+ $ ls .
+ foo/ bar/ baz/
+ $ cat foo/cobra.json
+ { "deps": "bar", "baz" }
+ $ cat bar/cobra.json
+ No such file or directory
+ $ cat baz/cobra.json
+ No such file or directory
+ $ cobra foo
+ [cobra bar]
+ [cobra baz]
+ [cobra foo]
+ $ exit
diff --git a/sandbox/cobra/hello/index.sh b/sandbox/cobra/hello/index.sh
new file mode 100644
index 00000000..df2dea7c
--- /dev/null
+++ b/sandbox/cobra/hello/index.sh
@@ -0,0 +1 @@
+echo 'Hello, world!'
diff --git a/sandbox/cobra/index.sh b/sandbox/cobra/index.sh
new file mode 100755
index 00000000..1118a823
--- /dev/null
+++ b/sandbox/cobra/index.sh
@@ -0,0 +1,16 @@
+#! /bin/sh
+set -euf
+trap "echo 'You are made of stupid!' >&2; exit 23" EXIT
+
+COBRA_PATH="${COBRA_PATH-$PWD}"
+
+## main
+for target; do
+ for path in $COBRA_PATH; do
+ if test -d "$path/$target"; then
+ if index="$path/$target/index.sh" && test -f "$index"; then
+ exec /bin/sh "$index"
+ fi
+ fi
+ done
+done