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