id = "noti" name = "noti" homepage = "https://github.com/variadico/noti" description = "Trigger notifications when a process completes." executables = ["noti"] [dotfiles] # The project's noti.yaml(5) documents $XDG_CONFIG_HOME/noti/noti.yaml (with # ~/.config as its fallback) after the project-local ./.noti.yaml lookup. # https://github.com/variadico/noti/releases # https://man.freebsd.org/cgi/man.cgi?apropos=0&manpath=FreeBSD+Ports+15.1.quarterly&query=noti.yaml&sektion=5 paths = ["[configHome]/noti/noti.yaml"] # The YAML file also contains ordinary notification preferences. These are # the credential keys named by noti.yaml(5), kept out of the synced content. secret = [] [[dotfiles.secret_paths]] file = "[configHome]/noti/noti.yaml" format = "yaml" match = { key_path = [ "bearychat.incomingHookURI", "pushbullet.accessToken", "pushover.userKey", "pushover.apiToken", "pushsafer.key", "simplepush.key", "slack.appurl", "telegram.token", "twilio.accountsid", "twilio.authtoken", "gchat.appurl", ] } [commands] format = 1 label = "Notify when a command finishes" description = "Run a command under noti, or watch a PID, and send a notification when it ends. Only the common notification backends are included." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "help" kind = "help" url = "https://github.com/variadico/noti" evidence = """ Usage: noti [flags] [utility [args...]] -t, --title string Set notification title. Default is utility name. -m, --message string Set notification message. Default is "Done!". Read from stdin with "-". -e, --time Show execution time in message. -b, --banner Trigger a banner notification. This is enabled by default. -s, --speech Trigger a speech notification. -w, --pwatch int Monitor a process by PID and trigger a notification when the pid disappears. (default -1) -f, --file string Path to noti.yaml configuration file. """ [[commands.field]] id = "title" label = "Title" type = "string" option = ["--title", "-t"] sources = ["help"] [[commands.field]] id = "message" label = "Message" type = "string" option = ["--message", "-m"] sources = ["help"] [[commands.field]] id = "time" label = "Show execution time" type = "boolean" option = ["--time", "-e"] sources = ["help"] [[commands.field]] id = "speech" label = "Spoken notification" type = "boolean" option = ["--speech", "-s"] sources = ["help"] [[commands.field]] id = "pwatch" label = "Watch PID" description = "Notify when this process ID disappears instead of running a command." type = "integer" option = ["--pwatch", "-w"] sources = ["help"] [[commands.field]] id = "file" label = "Config file" type = "path" option = ["--file", "-f"] path = { kind = "file", role = "input" } sources = ["help"] [[commands.field]] id = "utility" label = "Command" description = "Command and arguments to run; leave empty to notify right away." type = "string" position = 0 multiple = true sources = ["help"] [[commands.task]] id = "run" label = "Run a command and notify" fields = ["utility", "title", "message", "time"] required = ["utility"] [[commands.task]] id = "watch" label = "Notify when a PID exits" fields = ["pwatch", "title", "message", "time"] required = ["pwatch"] [[commands.group]] id = "basic" label = "Basic" fields = ["utility", "title", "message", "time", "pwatch"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["speech", "file"]