From 384552a83d12b1f14e2d35f2267aabbf9240eac6 Mon Sep 17 00:00:00 2001 From: makefu Date: Thu, 20 Dec 2012 10:45:52 +0700 Subject: //cobra -> //sandbox/cobra --- sandbox/cobra/README.md | 34 ++++++++++++++++++++++++++++++++++ sandbox/cobra/hello/index.sh | 1 + sandbox/cobra/index.sh | 16 ++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 sandbox/cobra/README.md create mode 100644 sandbox/cobra/hello/index.sh create mode 100755 sandbox/cobra/index.sh (limited to 'sandbox') 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 -- cgit v1.2.3