id = "smug"
name = "Smug"
homepage = "https://github.com/ivaaaan/smug"
description = "Session manager and task runner for tmux."
executables = ["smug"]
[dotfiles]
paths = ["[configHome]/smug/"]
exclude = [
"[configHome]/smug/smug.log",
]
secret = []
side_effect = false
[commands]
format = 1
label = "Smug"
description = "Start or stop a tmux session from a project file. Creating, editing and printing projects, and custom ${variable} settings, are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["start"]
label = "Start a session"
description = "Start a project from ~/.config/smug or a custom file."
[[commands.subcommand.source]]
id = "smug-readme"
kind = "manual"
url = "https://github.com/ivaaaan/smug/blob/master/README.md"
revision = "master README"
evidence = '''smug <command> [<project>] [-f, --file <file>] [--worktree <worktree>] [-w, --windows <window>]... [-a, --attach] [-d, --debug]
-f, --file A custom path to a config file
--worktree Use the git worktree (by branch or directory name) as the session root
-w, --windows List of windows to start.
-a, --attach Force switch client for a session
-i, --inside-current-session Create all windows inside current session
-d, --debug Print all commands to ~/.config/smug/smug.log
--detach Detach session. The same as -d flag in the tmux
smug start project
smug stop project'''
[[commands.subcommand.field]]
id = "project"
label = "Project"
type = "string"
position = 0
sources = ["smug-readme"]
[[commands.subcommand.field]]
id = "file"
label = "Config file"
type = "path"
option = ["--file", "-f"]
path = { kind = "file", role = "input" }
sources = ["smug-readme"]
[[commands.subcommand.field]]
id = "windows"
label = "Only these windows"
type = "string"
option = ["--windows", "-w"]
multiple = true
sources = ["smug-readme"]
[[commands.subcommand.field]]
id = "worktree"
label = "Git worktree (branch or directory)"
type = "string"
option = ["--worktree"]
sources = ["smug-readme"]
[[commands.subcommand.field]]
id = "attach"
label = "Force switch client"
type = "boolean"
option = ["--attach", "-a"]
sources = ["smug-readme"]
[[commands.subcommand.field]]
id = "detach"
label = "Detach session"
type = "boolean"
option = ["--detach"]
sources = ["smug-readme"]
[[commands.subcommand.field]]
id = "inside"
label = "Create windows inside current session"
type = "boolean"
option = ["--inside-current-session", "-i"]
sources = ["smug-readme"]
[[commands.subcommand.field]]
id = "debug"
label = "Log commands to smug.log"
type = "boolean"
option = ["--debug", "-d"]
sources = ["smug-readme"]
[[commands.subcommand.task]]
id = "start"
label = "Start a project"
fields = ["project", "windows"]
required = ["project"]
[[commands.subcommand.task]]
id = "worktree"
label = "Start in a worktree"
fields = ["project", "worktree"]
required = ["project", "worktree"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["project", "file", "windows", "worktree", "attach"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["detach", "inside", "debug"]
[[commands.subcommand]]
path = ["stop"]
label = "Stop a session"
description = "Stop a project session, or only some windows."
[[commands.subcommand.source]]
id = "smug-readme"
kind = "manual"
url = "https://github.com/ivaaaan/smug/blob/master/README.md"
revision = "master README"
evidence = '''smug <command> [<project>] [-f, --file <file>] [--worktree <worktree>] [-w, --windows <window>]... [-a, --attach] [-d, --debug]
-f, --file A custom path to a config file
--worktree Use the git worktree (by branch or directory name) as the session root
-w, --windows List of windows to start.
-a, --attach Force switch client for a session
-i, --inside-current-session Create all windows inside current session
-d, --debug Print all commands to ~/.config/smug/smug.log
--detach Detach session. The same as -d flag in the tmux
smug start project
smug stop project'''
[[commands.subcommand.field]]
id = "project"
label = "Project"
type = "string"
position = 0
sources = ["smug-readme"]
[[commands.subcommand.field]]
id = "file"
label = "Config file"
type = "path"
option = ["--file", "-f"]
path = { kind = "file", role = "input" }
sources = ["smug-readme"]
[[commands.subcommand.field]]
id = "windows"
label = "Only these windows"
type = "string"
option = ["--windows", "-w"]
multiple = true
sources = ["smug-readme"]
[[commands.subcommand.task]]
id = "stop"
label = "Stop a project"
fields = ["project"]
required = ["project"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["project", "file", "windows"]