Injection fixes + utils

This commit is contained in:
2026-01-12 19:34:40 -07:00
parent 9d423b64a4
commit e859424677

View File

@@ -86,7 +86,7 @@ get_comment_start() {
ext="${ext##*.}"
case $ext in
js|rasi)
js|rasi|kdl)
comment_start="//"
;;
@@ -127,6 +127,7 @@ create_theme() {
inject() {
path=$1
dirname="$(dirname "$path")"
parse_scheme
check_scheme_path
parse_comment_pattern
@@ -135,11 +136,13 @@ inject() {
if [ "$comment_start" == "" ]; then
comment_start="#"
fi
cd "$dirname" || exit
awk -v blockstart="${comment_start}START SHCHEMES BLOCK" \
-v blockend="${comment_start}END SHCHEMES BLOCK" \
-v blockend="${comment_start}END SHCHEMES BLOCK${comment_end}" \
-v commentend="$comment_end" \
-v scheme="$scheme" \
-v shchemes="$shchemes_path" \
-v dirname="$dirname" \
-v sq="'" \
-v nl="\n" \
-F ":" '
@@ -151,23 +154,24 @@ $1 ~ blockstart {
inblock = 1;
bi = 0;
command = substr($2, 0, length($2) - length(commentend))
system("/usr/bin/env bash -c " sq "SCHEME=\"" scheme "\";" command sq);
system("cd " dirname " && /usr/bin/env bash -c " sq "SCHEME=\"" scheme "\";" command sq);
next
}
$1 == blockend && inblock {
inblock = 0;
print nl blockend commentend;
print nl blockend;
next;
}
ENDFILE {
if(inblock) {
print nl blockend commentend;
print nl blockend;
for(i=1;i<=bi;i++) {
print lines[i];
}
}
}
' "$path" > "$tmp" && mv "$tmp" "$path"
cd - || exit
}
# TODO: multiple format support, check that line actually has multiple fields
@@ -251,6 +255,13 @@ install_tinted_template() {
rm "$tmp"
}
print_scheme_path() {
parse_scheme
check_scheme_path
printf %s\\n "$scheme_path"
exit
}
manual() {
man "${shchemes_dir}/doc/shchemes.1"
}
@@ -261,6 +272,10 @@ if [ "$method" != "" ]; then
create_theme "${args[1]}"
;;
path)
print_scheme_path
;;
inject)
inject "${args[1]}" "${args[2]}"
;;