## Dependencies
-- [bash](https://repology.org/project/bash/packages), obviously
+- your favorite POSIX-compliant shell ([bash](https://repology.org/project/bash/packages), [zsh](https://repology.org/project/zsh/packages), [dash](https://repology.org/project/dash-shell/packages), ...)
- [jq](https://repology.org/project/jq/packages) for parsing the json files
### Optional
### Automatically Generating Configuration
-You need _haskell_ and _cabal_ installed. (To be clear, this is just for a tool that will help you automatically generate the config files, you still only need bash to run the tests)
+You need _haskell_ and _cabal_ installed. (To be clear, this is just for a tool that will help you automatically generate the config files, you still only need your shell to run the tests)
Run the following command:
-```bash
+```sh
cabal build
```
Luckily, the XDG spec is supported by git, so we can simply move the file to _XDG_CONFIG_HOME/git/config_.
We can use that last sentence as our instructions. In this case, there are no newlines, so escaping this string for use in json is trivial, however, this is how you should generally approach it:
-```bash
+```sh
echo "Luckily, the XDG spec is supported by git, so we can simply move the file to _XDG_CONFIG_HOME/git/config_." | jq -aRs .
```
Let's see what the output of this command looks like for something a little more sophisticated.
Here's an example file:
-```bash
+```sh
cat example.md
```
```
_(But you can probably just delete the dir)_
```
Here's what catting this file to the _jq_ command produces:
-```bash
+```sh
cat example.md | jq -aRs .
```
```
{
"path": "$HOME/.Xresources",
"movable": true,
- "help": "xrdb loads these resources, wherever you call xrdb, add this flag:\n\n```bash\nxrdb -load \"$XDG_CONFIG_HOME/.config/X11/xresources\"\n```\n\n_Note: It will probably be called by your Xsession file._\n"
+ "help": "xrdb loads these resources, wherever you call xrdb, add this flag:\n\n```bash\nxrdb -load \"$XDG_CONFIG_HOME/X11/xresources\"\n```\n\n_Note: It will probably be called by your Xsession file._\n"
}
],
"name": "xorg-xrdb"
-}
\ No newline at end of file
+}
-#!/usr/bin/env bash
+#!/usr/bin/env sh
# shellcheck disable=SC2016
USE_GLOW=true
while IFS= read -r file; do
check_file "$file" "$NAME"
- done <<<"$(printf "%s" "$INPUT" | jq -rc '.files[]')"
+ done <<EOF
+$(echo "$INPUT" | jq -rc '.files[]')
+EOF
}
# Loops over all files in the programs/ directory and calls check_program
enumerate_programs() {
printf "\e[1;3mStarting to check your \e[1;36m\$HOME.\e[1;0m\n"
printf "\n"
- for prog_filename in "$(dirname "${BASH_SOURCE[0]}")"/programs/*; do
+ for prog_filename in "${0%/*}"/programs/*; do
check_program "$(cat "$prog_filename")"
done
printf "\e[1;3mDone checking your \e[1;36m\$HOME.\e[1;0m\n"