diff --git a/lib/sde-package.in b/lib/sde-package.in index 586b504..0fbd34b 100644 --- a/lib/sde-package.in +++ b/lib/sde-package.in @@ -53,3 +53,26 @@ package_parse() { done | sed -n -e "s,^$SDEROOT/package/\([^/]*\)/\([^/]*\).*,\1/\2,p" done } + +# package_desc +# +package_desc() { + ls -1d "$SDEROOT/package"/*/"$1/$1.desc" 2> /dev/null | head -n 1 +} + +# package_tag +# +package_tag() { + local tag=$(echo "$1" | tr 'a-z' 'A-Z') + + grep -e "^\(\[.*\)\?\[$tag\]" "$SDEROOT/etc/desc_format" | + sed -e 's, *(\*) *$,,' -e 's,[\t ]\+, ,g' | tr -d '[]' +} + +# package_desc_extract +# +package_desc_extract() { + local pattern=$(package_tag "$2" | sed -e '/ / {s/ \+/\\|/g;s/^/\\(/;s/$/\\)/;}') + + sed -n -e "s/^\[$pattern\][ \t]*//p;" "$1" +}