id = "rawdog"
name = "rawdog"
homepage = "https://offog.org/code/rawdog/"
description = "An RSS aggregator without delusions of grandeur."
executables = ["rawdog"]
[dotfiles]
paths = ["~/.rawdog/config"]
secret = []
[commands]
format = 1
label = "Update and manage feeds"
description = "Fetch feeds and write the HTML page, or add, remove and list feeds. Template display and extra config files are included; other actions are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true }
[[commands.source]]
id = "man"
kind = "manual"
url = "https://manpages.debian.org/testing/rawdog/rawdog.1.en.html"
revision = "2026-10-27"
evidence = '''
-d DIR, --dir DIR
-N, --no-locking
-v, --verbose
-W, --no-lock-wait
-a URL, --add URL
-c FILE, --config FILE
-f URL, --update-feed URL
-l, --list
-r URL, --remove URL
-s TEMPLATE, --show TEMPLATE (TEMPLATE may be page, item, feedlist or feeditem)
-u, --update
'''
[[commands.field]]
id = "update"
label = "Fetch feeds and store"
type = "boolean"
option = ["--update", "-u"]
sources = ["man"]
[[commands.field]]
id = "add"
label = "Add feed URL"
type = "url"
option = ["--add", "-a"]
sources = ["man"]
[[commands.field]]
id = "remove"
label = "Remove feed URL"
description = "Removes the feed from the config file."
type = "url"
option = ["--remove", "-r"]
effect = "delete"
sources = ["man"]
[[commands.field]]
id = "list"
label = "List known feeds"
type = "boolean"
option = ["--list", "-l"]
sources = ["man"]
[[commands.field]]
id = "update_feed"
label = "Force-update one feed"
type = "url"
option = ["--update-feed", "-f"]
sources = ["man"]
[[commands.field]]
id = "show"
label = "Print a template"
type = "enum"
option = ["--show", "-s"]
choices = [{ value = "page", label = "page" }, { value = "item", label = "item" }, { value = "feedlist", label = "feedlist" }, { value = "feeditem", label = "feeditem" }]
sources = ["man"]
[[commands.field]]
id = "config"
label = "Extra config file"
type = "path"
path = { kind = "file", role = "input" }
option = ["--config", "-c"]
sources = ["man"]
[[commands.field]]
id = "dir"
label = "State directory"
description = "Used instead of $HOME/.rawdog."
type = "path"
path = { kind = "directory", role = "input" }
option = ["--dir", "-d"]
sources = ["man"]
[[commands.field]]
id = "verbose"
label = "Verbose"
type = "boolean"
option = ["--verbose", "-v"]
sources = ["man"]
[[commands.field]]
id = "no_lock_wait"
label = "Exit if already running"
type = "boolean"
option = ["--no-lock-wait", "-W"]
sources = ["man"]
[[commands.task]]
id = "update"
label = "Update feeds"
fields = ["update", "verbose", "no_lock_wait"]
required = ["update"]
set = { update = [true] }
[[commands.task]]
id = "add"
label = "Add a feed"
fields = ["add", "update"]
required = ["add"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["update", "add", "remove", "list", "update_feed", "show"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["config", "dir", "verbose", "no_lock_wait"]