fling

command module
v0.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 15, 2022 License: MIT Imports: 17 Imported by: 0

README

fling

fling computes and creates/removes the minimal amount of symlinks needed in a directory to refer to files and directories in another directory, similar to GNU Stow. I use fling to manage my dotfiles

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 roughly 750 lines of Go code as of 2021-12-03. 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. Finally, fling's --dotfiles option works correctly (and is on by default).

Install

  • Homebrew: brew install bbkane/tap/fling
  • Download Mac/Linux executable: GitHub releases
  • Go: go install github.com/bbkane/fling@latest
  • Build with goreleaser after cloning: goreleaser --snapshot --skip-publish --rm-dist

Example

demo

Notes

fling was built to manage my dotfiles, and it's only tested on those dotfiles. Please feel free to contribute tests.


If you're migrating from GNU Stow, you may see an error similar to the following when you attempt to fling 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

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL