diff options
author | Simon Rettberg | 2019-05-27 18:19:24 +0200 |
---|---|---|
committer | Simon Rettberg | 2019-05-27 18:19:24 +0200 |
commit | a92edd5f723d56a377905c91bb6321790d0d3a98 (patch) | |
tree | 583fd732c5cb9763b743b4206b9e722c6427e5d2 | |
parent | Add download and download_retry (diff) | |
download | slx-tools-a92edd5f723d56a377905c91bb6321790d0d3a98.tar.gz slx-tools-a92edd5f723d56a377905c91bb6321790d0d3a98.tar.xz slx-tools-a92edd5f723d56a377905c91bb6321790d0d3a98.zip |
Add String and XML helpers
-rwxr-xr-x | make.sh | 5 | ||||
-rw-r--r-- | modules/str.inc | 26 | ||||
-rw-r--r-- | modules/xml.inc | 6 |
3 files changed, 37 insertions, 0 deletions
@@ -19,6 +19,11 @@ for file in modules/**/*.inc; do name="${name%.inc}" [[ "$name" =~ ^[a-z0-9_]+$ ]] || continue echo " * Handling $file" + if ! bash -n "$file"; then + echo "FILE CONTAINS ERRORS; ABORTING" + rm -f -- slx-tools + exit 1 + fi for var in $( grep -oP '^[a-z0-9_]+\s*\(\)' "$file" | grep -oE '^[a-z0-9_]+' ); do echo "Found $var" DEFS+="$var() { . \$BASE/$file; $var "'"$@"; }\n' diff --git a/modules/str.inc b/modules/str.inc new file mode 100644 index 0000000..6179033 --- /dev/null +++ b/modules/str.inc @@ -0,0 +1,26 @@ +#!/bin/ash + +str_trim() { + if [ $# = 0 ]; then + tr '\n' '\r' | sed -r 's/^[[:space:]]+//;s/[[:space:]]+$//' | tr '\r' '\n' + else + printf "%s" "$*" | tr '\n' '\r' | sed -r 's/^[[:space:]]+//;s/[[:space:]]+$//' | tr '\r' '\n' + fi +} + +str_upper() { + if [ $# = 0 ]; then + tr 'a-z' 'A-Z' + else + printf "%s" "$*" | tr 'a-z' 'A-Z' + fi +} + +str_lower() { + if [ $# = 0 ]; then + tr 'A-Z' 'a-z' + else + printf "%s" "$*" | tr 'A-Z' 'a-z' + fi +} + diff --git a/modules/xml.inc b/modules/xml.inc new file mode 100644 index 0000000..4fa4b84 --- /dev/null +++ b/modules/xml.inc @@ -0,0 +1,6 @@ +#!/bin/ash + +xml_get() { + xmlstarlet sel --text --encode utf-8 --template --value-of "$1" "$2" +} + |