24 releases
0.5.0 | Jan 24, 2024 |
---|---|
0.4.2 | Sep 30, 2023 |
0.4.0 | Nov 20, 2022 |
0.1.20 | Nov 7, 2021 |
0.1.5 | Aug 18, 2019 |
#131 in Configuration
114 downloads per month
165KB
4.5K
SLoC
tuning
ansible-like tool with a smaller scope, focused primarily on complementing dotfiles for cross-machine bliss
status
- some functionality, but still missing some basics that will make it actually useful
what?
-
inspired by
ansible
, with jobs defined in a declarative file format -
will focus on the dotfiles use-case: maintaining the same user preferences across machines, or restoring user preferences to a fresh machine
-
no remote or fleet functionality / complexity
-
not aiming to do anything that requires root / Administrator permissions (yet)
-
named after the reality-bending ability in Dark City
why?
-
my dotfiles started as a whole bunch of shell-scripts, but didn't have any support for Windows,
-
I'd partially moved to my second attempt, which is cross-platform, but required too much work for new jobs
-
other existing tools use interpretted languages, which are fine for web services that run in containers, but can be overly-sensitive to interpreter versions and globally-installed packages
-
yes, I am firmly trapped in The Code/Data Cycle
prerequisites
- Rust compiler and
cargo
: https://rustup.rs/
getting started
$ cargo install tuning
$ tuning
documentation
- read about contributing to this project
- read about job metadata
- read about job file template rendering
- read about the jobs configuration file format
roadmap for 1.0
- support machine hostname as a
when
condition (#10) -
--config
flag to point at a different config file (#11) - support job status as a
when
condition (#12) -
[[includes]]
to help decompose large config files (#15) - validate that there are no circular dependencies between jobs (#17)
known issues
security
- this project is vulnerable to symlink races, which is why we do not recommend running it with root privileges for now
see also
Dependencies
~15–28MB
~421K SLoC