Skip to content

Commit 5f9367f

Browse files
committed
v0.1.4 - Now supports stdin as default input method
1 parent 248b0f6 commit 5f9367f

File tree

6 files changed

+80
-42
lines changed

6 files changed

+80
-42
lines changed

Makefile

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
BUILDERS=$(shell find build/*)
2-
.PHONY: lint test all install
1+
BUILDERS = $(shell find build/*)
2+
3+
.PHONY: lint test all install uninstall docs
4+
35
all: ysh lint test
46

57
ysh: src/ysh.sh src/ysh.awk Makefile $(BUILDERS)
@@ -23,3 +25,11 @@ install: ysh
2325
uninstall:
2426
@echo "🗑️ Uninstalling ysh"
2527
@rm /usr/local/bin/ysh
28+
29+
docs: ysh
30+
@echo "📚 Updating docs"
31+
$(eval VERSION := $(shell grep "YSH_version=" ysh | sed "s/YSH_version='//" | sed "s/'$$//"))
32+
@awk -v version=$(VERSION) -f build/docbuilder.awk README.md > .tmp_README.md
33+
@mv .tmp_README.md README.md
34+
@awk -v version=$(VERSION) -f build/docbuilder.awk _static/_get/index.html > .tmp_index.html
35+
@mv .tmp_index.html _static/_get/index.html

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ YSH_LIB=1;source /usr/local/bin/ysh
2828

2929
If you want the internet as your only dependency:
3030
```bash
31-
$ YSH_LIB=1;source /dev/stdin <<< "$(curl -s https://raw.githubusercontent.com/azohra/yaml.sh/v0.1.3/ysh)"
31+
$ YSH_LIB=1;source /dev/stdin <<< "$(curl -s https://raw.githubusercontent.com/azohra/yaml.sh/v0.1.4/ysh)"
3232
```
3333

3434
## Flags

_static/_get/index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
curl -s -L https://raw.githubusercontent.com/azohra/yaml.sh/v0.1.2/ysh --output /usr/local/bin/ysh
2-
chmod u+x /usr/local/bin/ysh
1+
curl -s -L https://raw.githubusercontent.com/azohra/yaml.sh/v0.1.4/ysh --output /usr/local/bin/ysh;
2+
chmod u+x /usr/local/bin/ysh

build/docbuilder.awk

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/awk
2+
3+
/https:\/\/raw.githubusercontent.com\/azohra\/yaml.sh\/v[0-9]+.[0-9]+.[0-9]+\/ysh/ {
4+
sub(/https:\/\/raw.githubusercontent.com\/azohra\/yaml.sh\/v[0-9]+.[0-9]+.[0-9]+\/ysh/, "https://raw.githubusercontent.com/azohra/yaml.sh/v" version "/ysh")
5+
print
6+
next
7+
}
8+
{print}

src/ysh.sh

+29-19
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /bin/bash
22
# shellcheck source=/dev/null
3-
YSH_version='0.1.3'
3+
YSH_version='0.1.4'
44

55
# Will be replaced by builder with minified awk parser program
66
YAML_AWK_PARSER=$(cat src/ysh.awk)
@@ -9,6 +9,10 @@ YSH_parse() {
99
awk "${YAML_AWK_PARSER}" "${1}"
1010
}
1111

12+
YSH_parse_sdin() {
13+
awk "${YAML_AWK_PARSER}"
14+
}
15+
1216
YSH_query() {
1317
grep -E "^${2}" <<< "${1}" | sed -E "s/^${2}[\\.=]?//"
1418
}
@@ -56,11 +60,13 @@ YSH_next_block() {
5660

5761
YSH_usage() {
5862
echo ""
59-
echo "Usage: ysh [flags]"
63+
echo "Usage: ysh [-fT input] [queries]"
6064
echo ""
61-
echo "flags:"
65+
echo "input:"
6266
echo " -f, --file <file_name> parse file"
6367
echo " -T, --transpiled <file_name> use pre-transpiled file"
68+
echo ""
69+
echo "queries:"
6470
echo " -q, --query <query> generic query"
6571
echo " -Q, --query-val <query> safe query. Guarentees a value."
6672
echo " -s, --sub <query> sub structure. No values."
@@ -77,23 +83,27 @@ YSH_usage() {
7783

7884
ysh() {
7985
local YSH_RAW_STRING=""
86+
case "$1" in
87+
-v|--version)
88+
echo "v${YSH_version}" && exit 0
89+
;;
90+
-h|--help)
91+
YSH_usage
92+
;;
93+
-f|--file)
94+
YSH_RAW_STRING="$(YSH_parse "${2}")"
95+
shift; shift
96+
;;
97+
-T|--transpiled)
98+
YSH_RAW_STRING="${2}"
99+
shift; shift
100+
;;
101+
*)
102+
YSH_RAW_STRING="$(YSH_parse_sdin)"
103+
;;
104+
esac
80105
while [ $# -gt 0 ] ; do
81-
82106
case "$1" in
83-
-v|--version)
84-
echo "v${YSH_version}" && exit 0
85-
;;
86-
-h|--help)
87-
YSH_usage
88-
;;
89-
-f|--file)
90-
YSH_RAW_STRING="$(YSH_parse "${2}")"
91-
shift
92-
;;
93-
-T|--transpiled)
94-
YSH_RAW_STRING="${2}"
95-
shift
96-
;;
97107
-q|--query)
98108
YSH_RAW_STRING="$(YSH_query "${YSH_RAW_STRING}" "${2}")"
99109
shift
@@ -142,8 +152,8 @@ ysh() {
142152
;;
143153
esac
144154
shift
145-
if [[ $# -eq 0 ]]; then echo "${YSH_RAW_STRING}"; fi
146155
done
156+
if [[ $# -eq 0 ]]; then echo "${YSH_RAW_STRING}"; fi
147157
}
148158
if [[ YSH_LIB -ne 1 ]]; then
149159
if [[ $# -eq 0 ]] ; then YSH_usage; exit 1; fi

ysh

+28-18
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#! /bin/bash
2-
YSH_version='0.1.3'
2+
YSH_version='0.1.4'
33
YAML_AWK_PARSER='
44
function raise(msg) { print msg > "/dev/stderr"; if (force_complete) { exit_status = 1; } else { exit 1; };};
55
function level() { match($0, /^[[:space:]]*/); if (RLENGTH % 2 != 0) { raise("Bad indentation on line "NR". Number of spaces uneven."); }; return RLENGTH / 2;};
@@ -23,6 +23,9 @@ function check_started() { if (started == 0) { raise("Keys must be added before
2323
YSH_parse() {
2424
awk "${YAML_AWK_PARSER}" "${1}"
2525
}
26+
YSH_parse_sdin() {
27+
awk "${YAML_AWK_PARSER}"
28+
}
2629
YSH_query() {
2730
grep -E "^${2}" <<< "${1}" | sed -E "s/^${2}[\\.=]?//"
2831
}
@@ -58,11 +61,13 @@ YSH_next_block() {
5861
}
5962
YSH_usage() {
6063
echo ""
61-
echo "Usage: ysh [flags]"
64+
echo "Usage: ysh [-fT input] [queries]"
6265
echo ""
63-
echo "flags:"
66+
echo "input:"
6467
echo " -f, --file <file_name> parse file"
6568
echo " -T, --transpiled <file_name> use pre-transpiled file"
69+
echo ""
70+
echo "queries:"
6671
echo " -q, --query <query> generic query"
6772
echo " -Q, --query-val <query> safe query. Guarentees a value."
6873
echo " -s, --sub <query> sub structure. No values."
@@ -78,22 +83,27 @@ YSH_usage() {
7883
}
7984
ysh() {
8085
local YSH_RAW_STRING=""
86+
case "$1" in
87+
-v|--version)
88+
echo "v${YSH_version}" && exit 0
89+
;;
90+
-h|--help)
91+
YSH_usage
92+
;;
93+
-f|--file)
94+
YSH_RAW_STRING="$(YSH_parse "${2}")"
95+
shift; shift
96+
;;
97+
-T|--transpiled)
98+
YSH_RAW_STRING="${2}"
99+
shift; shift
100+
;;
101+
*)
102+
YSH_RAW_STRING="$(YSH_parse_sdin)"
103+
;;
104+
esac
81105
while [ $# -gt 0 ] ; do
82106
case "$1" in
83-
-v|--version)
84-
echo "v${YSH_version}" && exit 0
85-
;;
86-
-h|--help)
87-
YSH_usage
88-
;;
89-
-f|--file)
90-
YSH_RAW_STRING="$(YSH_parse "${2}")"
91-
shift
92-
;;
93-
-T|--transpiled)
94-
YSH_RAW_STRING="${2}"
95-
shift
96-
;;
97107
-q|--query)
98108
YSH_RAW_STRING="$(YSH_query "${YSH_RAW_STRING}" "${2}")"
99109
shift
@@ -142,8 +152,8 @@ ysh() {
142152
;;
143153
esac
144154
shift
145-
if [[ $# -eq 0 ]]; then echo "${YSH_RAW_STRING}"; fi
146155
done
156+
if [[ $# -eq 0 ]]; then echo "${YSH_RAW_STRING}"; fi
147157
}
148158
if [[ YSH_LIB -ne 1 ]]; then
149159
if [[ $# -eq 0 ]] ; then YSH_usage; exit 1; fi

0 commit comments

Comments
 (0)