Simple tool for automatic file management
1# PTSD
2
3Simple tool for automatic file management. Basically `find … -exec`/`fd … --exec`
4with configuration file.
5
6## Name
7
8It stands for *Python Tremendously Suck Dicks* and it was created in anger after
9I tried to package [`organize`][] for Nix. It was pain, even when I was working
10alongside of one of Poetry maintainers. So as that experience was quite
11suboptimal I come up with idea of writing such project on my own and I have gave
12it a name that relates to the experience I had with Python.
13
14Hopefully this will be simpler to write and to package it as a Rust project
15rather than Python.
16
17[`organize`]: https://github.com/tfeldmann/organize/tree/main
18
19## Why Rust?
20
21Why not? I was thinking also about using Zig that I am learning, but I know Rust
22better and the ecosystem of Rust is in better state. Maybe I will rewrite it
23later.
24
25## Supported platforms
26
27I develop it and maintain it mostly on macOS, so most \*nixes should be ok. I
28will probably test it on Linux as well. I do not have Windows machine nor I care
29enough about that platform, so support for it may be wonky (unless someone,
30potentially You, will be willing to take care of it).
31
32## Configuration
33
34TBD, but current plan is to use JSON files.
35
36> But Hauleth, JSON sucks for configuration as it is quite verbose, lacks
37> comments, etc. So why not use something like JSON5, TOML, Dhall, Nickel
38> or other?
39
40Good question. I was thinking about using either Dhall or Nickel, but in the end
41I come to the conclusion that I want to use it from Nix anyway, so just using
42plain JSON and generating it from Nix derivation will be much simpler than using
43some fancy pants configuration language. In the end you can also use Nickel or
44Dhall from CLI and pass the generated file to the `ptsd`. Also if there will be
45need other formats can be easily added as `ptsd` uses Rust's Serde, which allows
46us to easily add new formats in the future if needed.
47
48## License
49
50I haven't decided yet, so for now we can assume WTFLPL, but it will for sure
51change in future.