mirror of
https://github.com/notwa/rc
synced 2024-11-05 15:59:04 -08:00
Connor Olding
44b0272097
this is where systemd already expects things to be, so this complements the OS instead of fighting it.
57 lines
1.1 KiB
Bash
Executable file
57 lines
1.1 KiB
Bash
Executable file
#!/usr/bin/env sh
|
|
# YES_ZSH
|
|
# YES_BASH
|
|
# YES_DASH
|
|
# YES_ASH
|
|
|
|
# TODO: what's the minimum version of perl required for this?
|
|
|
|
noccom() { ### @-
|
|
### strip C-like comments; both multi-line and single-line.
|
|
# the first expression is taken from this FAQ:
|
|
# https://perldoc.perl.org/perlfaq6.html#How-do-I-use-a-regular-expression-to-strip-C-style-comments-from-a-file%3f
|
|
[ -s ~/.local/bin/noccom ] || cat > ~/.local/bin/noccom <<EOF
|
|
#!/usr/bin/env perl
|
|
|
|
\$/ = undef;
|
|
\$_ = <>;
|
|
|
|
s{
|
|
/\\*[^*]*\\*+([^/*][^*]*\\*+)*/
|
|
|
|
|
//([^\\\\]
|
|
|
|
|
[^\\n][\\n]?)*?\\n
|
|
|
|
|
(
|
|
"(?:\\\\.|[^"\\\\])*"
|
|
|
|
|
'(?:\\\\.|[^'\\\\])*'
|
|
|
|
|
.[^/"'\\\\]*
|
|
)
|
|
}{defined \$3 ? \$3 : ""}gxse;
|
|
|
|
s{
|
|
\\\\?\\n\\s*([{}])?\\s*(;*)\\s*(?=\\\\?\\n)
|
|
|
|
|
(
|
|
\\#[^\\n]*\\n
|
|
|
|
|
"(?:\\\\.|[^"\\\\])*"
|
|
|
|
|
'(?:\\\\.|[^'\\\\])*'
|
|
|
|
|
.[^#/"'\\\\\\n]*
|
|
)
|
|
}{defined \$3 ? \$3 : (defined \$1 ? " ".\$1.\$2 : \$2)}gxse;
|
|
|
|
s#(^|\\n)\\s+#\$1#gs;
|
|
|
|
print;
|
|
EOF
|
|
|
|
perl ~/.local/bin/noccom "$@"
|
|
}
|
|
|
|
[ -n "${preload+-}" ] || noccom "$@"
|