id = "stow"
name = "GNU Stow"
homepage = "https://www.gnu.org/software/stow/"
description = "A symlink farm manager which takes distinct packages of software located in separate directories and makes them appear installed in one place."
executables = ["stow"]
[dotfiles]
paths = [
"~/.stowrc",
"~/.stow-global-ignore",
]
exclude = []
secret = []
side_effect = false
[commands]
format = 1
label = "Stow packages"
description = "Symlink, unstow or restow packages from a stow directory. Version and help flags are left out."
quality = "ai-draft"
base = "fig:stow"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true }
[[commands.source]]
id = "fig"
kind = "completion"
url = "https://github.com/withfig/autocomplete/blob/master/src/stow.ts"
license = "MIT"
[[commands.field]]
id = "packages"
label = "Packages"
description = "Package directories inside the stow directory."
type = "string"
position = 0
multiple = true
sources = ["fig"]
[[commands.field]]
id = "dir"
label = "Stow directory"
description = "Defaults to the current directory."
type = "path"
option = ["--dir", "-d"]
path = { kind = "directory", role = "input", must_exist = true }
sources = ["fig"]
[[commands.field]]
id = "target"
label = "Target directory"
description = "Defaults to the parent of the stow directory."
type = "path"
option = ["--target", "-t"]
path = { kind = "directory", role = "output", must_exist = true }
sources = ["fig"]
[[commands.field]]
id = "simulate"
label = "Dry run"
description = "Show what would happen without changing the filesystem."
type = "boolean"
option = ["--no", "-n"]
sources = ["fig"]
[[commands.field]]
id = "delete"
label = "Unstow"
description = "Remove the packages from the target directory."
type = "boolean"
option = ["--delete", "-D"]
sources = ["fig"]
[[commands.field]]
id = "restow"
label = "Restow"
description = "Unstow then stow again, pruning obsolete links."
type = "boolean"
option = ["--restow", "-R"]
sources = ["fig"]
[[commands.field]]
id = "dotfiles"
label = "Dotfiles"
description = "Rename dot-prefixed entries in packages to hidden files."
type = "boolean"
option = ["--dotfiles"]
sources = ["fig"]
[[commands.field]]
id = "no_folding"
label = "No folding"
type = "boolean"
option = ["--no-folding"]
sources = ["fig"]
[[commands.field]]
id = "adopt"
label = "Adopt existing files"
description = "Moves existing target files into the stow directory."
type = "boolean"
option = ["--adopt"]
effect = "overwrite"
sources = ["fig"]
[[commands.field]]
id = "ignore"
label = "Ignore pattern"
description = "Perl regex of file name endings to ignore."
type = "string"
option = ["--ignore"]
multiple = true
sources = ["fig"]
[[commands.field]]
id = "verbose"
label = "Verbosity"
description = "0 to 5."
type = "integer"
option = ["--verbose"]
value_style = "equals"
sources = ["fig"]
[[commands.task]]
id = "stow"
label = "Stow packages"
fields = ["packages", "dir", "target", "simulate", "dotfiles"]
required = ["packages"]
[[commands.task]]
id = "unstow"
label = "Unstow packages"
set = { delete = [true] }
lock = ["delete"]
fields = ["packages", "dir", "target", "simulate", "delete"]
required = ["packages"]
[[commands.task]]
id = "restow"
label = "Restow packages"
set = { restow = [true] }
lock = ["restow"]
fields = ["packages", "dir", "target", "simulate", "restow", "dotfiles"]
required = ["packages"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["packages", "dir", "target", "simulate", "delete", "restow", "dotfiles"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["no_folding", "adopt", "ignore", "verbose"]