From e859424677b0e94fc2de081c24dc5c07c4532b6a Mon Sep 17 00:00:00 2001 From: Dakedres Date: Mon, 12 Jan 2026 19:34:40 -0700 Subject: [PATCH] Injection fixes + utils --- shchemes | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/shchemes b/shchemes index 00996f5..e31df03 100755 --- a/shchemes +++ b/shchemes @@ -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" } @@ -260,6 +271,10 @@ if [ "$method" != "" ]; then create_theme) create_theme "${args[1]}" ;; + + path) + print_scheme_path + ;; inject) inject "${args[1]}" "${args[2]}"