#dotfiles #ansible #tool #scope #smaller #focused #cross-machine

app tuning

ansible-like tool with a smaller scope, focused primarily on complementing dotfiles for cross-machine bliss

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

Download history 34/week @ 2024-09-30

114 downloads per month

MIT license

165KB
4.5K SLoC

tuning Status Gitlab pipeline status Crates.io docs.rs

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

getting started

$ cargo install tuning
$ tuning

documentation

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