chore: add TODO roadmap, nf alias, and install recipe
Some checks failed
Public Repo Readiness / Check Public Repo Readiness (push) Has been cancelled
Some checks failed
Public Repo Readiness / Check Public Repo Readiness (push) Has been cancelled
This commit is contained in:
3
Justfile
3
Justfile
@@ -14,6 +14,9 @@ ci:
|
|||||||
cargo clippy --workspace -- -D warnings
|
cargo clippy --workspace -- -D warnings
|
||||||
cargo nextest run --workspace
|
cargo nextest run --workspace
|
||||||
|
|
||||||
|
install:
|
||||||
|
cargo install --path crates/notfiles --root "${HOME}/.local" --force
|
||||||
|
|
||||||
install-hooks:
|
install-hooks:
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
printf '#!/bin/sh\njust pre-commit\n' > .git/hooks/pre-commit
|
printf '#!/bin/sh\njust pre-commit\n' > .git/hooks/pre-commit
|
||||||
|
|||||||
@@ -24,6 +24,31 @@ pub struct Cli {
|
|||||||
pub command: Command,
|
pub command: Command,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO(install): `notfiles` is not yet installed on PATH. Add `just install` recipe and
|
||||||
|
// `mise task` so `nf` / `notfiles` is available without `cargo run`. See Justfile.
|
||||||
|
|
||||||
|
// TODO(bootstrap): Wire `notstrap` into the CLI as `notfiles bootstrap`. Should clone the
|
||||||
|
// repo, resolve age key (Bitwarden/YubiKey/prompt), decrypt SOPS secrets, link packages,
|
||||||
|
// and run post-hooks. The notstrap crate already models this — needs a CLI entry point.
|
||||||
|
|
||||||
|
// TODO(migrate): Add `notfiles migrate <dir>` that takes a stow/chezmoi repo (from `detect`)
|
||||||
|
// and generates a notfiles.toml for it, then bulk-adopts all packages. Should call
|
||||||
|
// `detect::detect()`, let the user pick a source, and run `adopt` for each package.
|
||||||
|
|
||||||
|
// TODO(which): Add `notfiles which <path>` — reverse lookup from a target path (e.g.
|
||||||
|
// ~/.gitconfig) to its source package and file. Walk state entries and check read_link.
|
||||||
|
|
||||||
|
// TODO(doctor): Add `notfiles doctor` — holistic drift detection replacing drift-check.sh.
|
||||||
|
// Checks: broken symlinks, unmanaged dotfiles in $HOME, dirty git state, conflicts,
|
||||||
|
// packages in dir not listed in notfiles.toml. Should print a summary like `just doctor`.
|
||||||
|
|
||||||
|
// TODO(discover): Add `[defaults] discover = true` mode to notfiles.toml so all top-level
|
||||||
|
// dirs are treated as packages automatically, without maintaining an explicit `include`
|
||||||
|
// list. Opt-in via config, not the default (explicit is safer).
|
||||||
|
|
||||||
|
// TODO(edit): Add `notfiles edit <managed-path>` — resolve the source file for a managed
|
||||||
|
// symlink and open it in $EDITOR. Quality-of-life shortcut for day-to-day editing.
|
||||||
|
|
||||||
#[derive(Subcommand, Debug)]
|
#[derive(Subcommand, Debug)]
|
||||||
pub enum Command {
|
pub enum Command {
|
||||||
/// Create a starter notfiles.toml
|
/// Create a starter notfiles.toml
|
||||||
|
|||||||
@@ -60,6 +60,9 @@ alias zbi = zb install
|
|||||||
alias zbl = zb list
|
alias zbl = zb list
|
||||||
alias zbu = zb update
|
alias zbu = zb update
|
||||||
|
|
||||||
|
# ── notfiles ─────────────────────────────────────────────────────────────────
|
||||||
|
def --wrapped nf [...args] { notfiles --dir /Users/joe/dev/notfiles ...$args }
|
||||||
|
|
||||||
# ── Dotfiles ─────────────────────────────────────────────────────────────────
|
# ── Dotfiles ─────────────────────────────────────────────────────────────────
|
||||||
alias dotfiles = cd ~/dotfiles
|
alias dotfiles = cd ~/dotfiles
|
||||||
def --env dotgs [] { cd ~/dotfiles; git status -sb }
|
def --env dotgs [] { cd ~/dotfiles; git status -sb }
|
||||||
|
|||||||
Reference in New Issue
Block a user