]> glassweightruler.freedombox.rocks Git - xdg-ninja.git/blobdiff - xdg-ninja.sh
Exit status = amount of fixable files
[xdg-ninja.git] / xdg-ninja.sh
index 2005e21234781db97bdcdf0c2267bc07a3baee3d..833220783382e40650d2d42c008577f2abd28a85 100755 (executable)
@@ -9,6 +9,9 @@ auto_set_decoder() {
     DECODER="cat"
     if has_command glow; then
         DECODER="glow -"
+    elif has_command batcat; then
+        DECODER="batcat -pp --decorations=always --color=always --language markdown"
+        printf "Markdown rendering will be done by bat. (Glow is recommended)\n"
     elif has_command bat; then
         DECODER="bat -pp --decorations=always --color=always --language markdown"
         printf "Markdown rendering will be done by bat. (Glow is recommended)\n"
@@ -133,6 +136,9 @@ decode_string() {
 /' # Replace \n with literal newline and \" with ", normalize number of trailing newlines to 2
 }
 
+# Counter to keep track of how many files can be moved
+FIXABLE=0
+
 # Function to handle the formatting of output
 log() {
     MODE="$1"
@@ -144,6 +150,7 @@ log() {
 
     ERR)
         printf '[%b%s%b]: %b%s%b\n' "${FX_BOLD}${FG_RED}" "$NAME" "${FX_RESET}" "${FX_BOLD}${FX_ITALIC}" "$FILENAME" "${FX_RESET}"
+        FIXABLE=$((FIXABLE+1))
         ;;
 
     WARN)
@@ -160,7 +167,7 @@ log() {
         ;;
 
     HELP)
-        decode_string "$HELP" | $DECODER
+        decode_string "$HELP" | PAGER="cat" $DECODER
         ;;
 
     esac
@@ -203,7 +210,7 @@ do_check_programs() {
 " read -r name; read -r filename; read -r movable; read -r help; do
         check_file "$name" "$filename" "$movable" "$help"
     done <<EOF
-$(jq 'inputs as $input | $input.files[] as $file | $input.name, $file.path, $file.movable, $file.help' "$(dirname "$0")"/programs/* | sed -e 's/^"//' -e 's/"$//')
+$(jq 'inputs as $input | $input.files[] as $file | $input.name, $file.path, $file.movable, $file.help' "$(realpath "$0" | xargs dirname)"/programs/* | sed -e 's/^"//' -e 's/"$//')
 EOF
 # sed is to trim quotes
 }
@@ -220,3 +227,4 @@ check_programs() {
 
 
 check_programs
+exit $FIXABLE