A shell script which checks your _$HOME_ for unwanted files and directories.
<p align="center">
- <img src="https://s8.gifyu.com/images/Peek-2022-05-13-16-07.gif" width="500"/>
+ <img src="https://s11.gifyu.com/images/68747470733a2f2f73382e67696679752e636f6d2f696d616765732f5065656b2d323032322d30352d31332d31362d30372e676966.gif" width="500"/>
</p>
When it encounters a file it knows about, it will tell you whether it's possible to move this file to an appropriate location, and how to do it.
## Running
+### Using nix
+
+If you're using [nix](https://nixos.org) and have flakes turned on, you can just run the following command:
+```sh
+nix run github:b3nj5m1n/xdg-ninja
+```
+
+### Cloning Manually
+
Clone the repository somewhere, then run the _./xdg-ninja.sh_ script.
This will run every test in the default configuration.
+### Installing with Homebrew
+
+To install xdg-ninja with [Homebrew](https://brew.sh), run `brew install xdg-ninja` to install the script and all of its dependencies, then run the `xdg-ninja` command.
+
## Dependencies
- 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
+- [find](https://repology.org/project/findutils/versions)
### Optional
## Configuration
-The configuration is done in the _programs/_ directory.
+The configuration is done in the _programs/_ directory, which should be located in the same working directory as the xdg-ninja.sh script. This can be overriden with the `XN_PROGRAMS_DIR` environment variable.
You define a program, and then a list of files and directories which this program ruthlessly puts into your _$HOME_ directory.
### Automatically Generating Configuration
-You can download the _xdgnj_ executable from the releases page. Alternatively you can build it from scratch using _cabal_, _stack_, or the provided docker image in _build/_. (To be clear, this is just a tool that will help you automatically generate the config files, you still only need your shell to run the tests)
+You can download the _xdgnj_ executable from the releases page. Alternatively, you can use the nix flake or build it from scratch using _cabal_, _stack_, or the provided docker image in _build/_. (To be clear, this is just a tool that will help you automatically generate the config files, you still only need your shell to run the tests)
Available commands:
```sh
xdgnj add # Adds a new configuration
xdgnj prev programs/FILE.json # Preview the configuration for a program
+xdgnj edit programs/FILE.json # Edit the configuration for a program
xdgnj run # Mostly the same as running the shell script
```
+#### Using nix
+
+If you're using [nix](https://nixos.org) and have flakes turned on, you can just run the following command:
+```sh
+nix run github:b3nj5m1n/xdg-ninja#xdgnj-bin ...
+```
+
#### Building from scratch
You can use `cabal build`, `stack build`, or the provided dockerfile in _build/_.
Saving this as _git.json_ in the _programs/_ directory will result in the script picking it up and checking the file.
-If you've created a configuration for a file that isn't in the offical repository yet, make sure to create a pull request so that other people can benefit from it as well.
+If you've created a configuration for a file that isn't in the official repository yet, make sure to create a pull request so that other people can benefit from it as well.