Worked examples
Create a source
mkdir -p ~/dotfiles
tuck source add ~/dotfiles --init --default
tuck source list
Adopt a shell config
tuck adopt zsh ~/.zshrc
tuck adopt zsh ~/.zshrc --apply
tuck package show zsh
Deploy a package on another machine
tuck source add ~/dotfiles --default
tuck package list
tuck package use zsh
tuck package use zsh --apply
Manage a root-context file
Root-context package files live under .root inside the source and deploy under
/:
tuck adopt --root sshd /etc/ssh/sshd_config
sudo tuck adopt --root sshd /etc/ssh/sshd_config --apply
tuck package use --root sshd
sudo tuck package use --root sshd --apply
Use copy deployment for symlink-hostile apps
Configure one package leaf to deploy as a real copied file:
tuck package config set app .config/app/config --deploy copy
tuck package use app
tuck package use app --apply
Then inspect drift:
tuck status ~/.config/app/config
tuck package status app
Eject a managed file
tuck eject ~/.zshrc
tuck eject ~/.zshrc --apply
Eject stops managing the target and leaves a real file in place.