- Notifications
You must be signed in to change notification settings - Fork3
File/directory symlinker similar to GNU Stow. Manages dotfiles well
License
bbkane/fling
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
fling computes and creates/removes the minimal amount of symlinks needed in a directory to refer to files and directories in another directory, similar toGNU Stow. I use fling to manage mydotfiles
fling is much dumber than GNU Stow - it's missing several options, only considers one directory at a time, and deals with absolute paths only (in contrast, GNU Stow works exclusively with relative paths).
As a tradeoff, fling's codebase is simpler. fling compiles to a single binary and contains fewer lines of code. It's very easy to understand what fling will do for a particular invocation: fling prints out (in color!) what it plans to link/unlink and asks you (by default) before continuing.
scoop bucket add bbkane https://github.com/bbkane/scoop-bucketscoop install bbkane/fling
- Download Mac/Linux executable:GitHub releases
- Go:
go install go.bbkane.com/fling@latest
- Build withgoreleaser after cloning:
goreleaser --snapshot --skip-publish --rm-dist
If you're migrating from GNU Stow, you may see an error similar to the following when you attempt tofling link
something:
Proposed link mismatch errors:- src: /Users/bbkane/Git/dotfiles/sqlite3/dot-sqliterc link: /Users/bbkane/.sqliterc err: link is already a symlink to src: Git/dotfiles/sqlite3/dot-sqliterc
This is because GNU Stow works with relative symlinks and fling works with absolute symlinks. Either unstow your directory (stow -D
) or manually erase the symlink:unlink /Users/bbkane/.sqliterc
About
File/directory symlinker similar to GNU Stow. Manages dotfiles well