id = "osc"
name = "osc"
homepage = "https://openbuildservice.org"
description = "Command-line interface to work with an Open Build Service"
executables = ["osc"]
[dotfiles]
paths = []
secret = ["[configHome]/osc/oscrc", "~/.oscrc"]
[commands]
format = 1
label = "Open Build Service"
description = "Check out, branch and commit packages with osc. Building, requests, project metadata and the other commands are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.subcommand]]
path = ["checkout"]
label = "Check out a package"
[[commands.subcommand.source]]
id = "man"
kind = "manual"
url = "https://manpages.debian.org/unstable/osc/osc.1.en.html"
revision = "Debian unstable"
evidence = """
osc co PROJECT [PACKAGE] [FILE]
osc co PROJECT # entire project
osc co PROJECT PACKAGE # a package
-r rev, --revision rev: checkout the specified revision. NOTE: if you checkout the complete project this option is ignored!
-u, --unexpand-link: if a package is a link, check out the _link file instead of the expanded sources
-M, --meta: checkout out meta data instead of sources
-c, --current-dir: place PACKAGE folder in the current directory instead of a PROJECT/PACKAGE directory
-o outdir, --output-dir outdir: place package in the specified directory instead of a PROJECT/PACKAGE directory
-s, --source-service-files: Run source services.
"""
[[commands.subcommand.field]]
id = "revision"
label = "Revision"
type = "string"
option = ["--revision", "-r"]
sources = ["man"]
[[commands.subcommand.field]]
id = "unexpand_link"
label = "Keep _link unexpanded"
type = "boolean"
option = ["--unexpand-link", "-u"]
sources = ["man"]
[[commands.subcommand.field]]
id = "meta"
label = "Meta data instead of sources"
type = "boolean"
option = ["--meta", "-M"]
sources = ["man"]
[[commands.subcommand.field]]
id = "current_dir"
label = "Place package in current directory"
type = "boolean"
option = ["--current-dir", "-c"]
sources = ["man"]
[[commands.subcommand.field]]
id = "output_dir"
label = "Output directory"
type = "path"
option = ["--output-dir", "-o"]
path = { kind = "directory", role = "output" }
sources = ["man"]
[[commands.subcommand.field]]
id = "source_services"
label = "Run source services"
type = "boolean"
option = ["--source-service-files", "-s"]
sources = ["man"]
[[commands.subcommand.field]]
id = "project"
label = "Project"
type = "string"
position = 0
sources = ["man"]
[[commands.subcommand.field]]
id = "package"
label = "Package"
description = "Omit to check out the entire project."
type = "string"
position = 1
sources = ["man"]
[[commands.subcommand.task]]
id = "package"
label = "Check out a package"
fields = ["project", "package", "revision", "current_dir"]
required = ["project", "package"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["project", "package", "revision", "current_dir", "output_dir"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["unexpand_link", "meta", "source_services"]
[[commands.subcommand]]
path = ["branch"]
label = "Branch a package"
[[commands.subcommand.source]]
id = "man"
kind = "manual"
url = "https://manpages.debian.org/unstable/osc/osc.1.en.html"
revision = "Debian unstable"
evidence = """
osc branch SOURCEPROJECT SOURCEPACKAGE
osc branch SOURCEPROJECT SOURCEPACKAGE TARGETPROJECT|. TARGETPACKAGE
-c, --checkout: Checkout branched package afterwards using "co -e -S"('osc bco' is a shorthand for this option)
-f, --force: force branch, overwrite target
-m TEXT, --message TEXT: specify message TEXT
-r rev, --revision rev: branch against a specific revision
--nodevelproject: do not follow a defined devel project (primary project where a package is developed)
--disable-build: disable building of the branched package
"""
[[commands.subcommand.field]]
id = "checkout"
label = "Check out afterwards"
type = "boolean"
option = ["--checkout", "-c"]
sources = ["man"]
[[commands.subcommand.field]]
id = "force"
label = "Force, overwrite target"
type = "boolean"
option = ["--force", "-f"]
effect = "overwrite"
sources = ["man"]
[[commands.subcommand.field]]
id = "message"
label = "Message"
type = "string"
option = ["--message", "-m"]
sources = ["man"]
[[commands.subcommand.field]]
id = "revision"
label = "Revision"
type = "string"
option = ["--revision", "-r"]
sources = ["man"]
[[commands.subcommand.field]]
id = "nodevelproject"
label = "Do not follow the devel project"
type = "boolean"
option = ["--nodevelproject"]
sources = ["man"]
[[commands.subcommand.field]]
id = "disable_build"
label = "Disable building the branch"
type = "boolean"
option = ["--disable-build"]
sources = ["man"]
[[commands.subcommand.field]]
id = "source_project"
label = "Source project"
type = "string"
position = 0
sources = ["man"]
[[commands.subcommand.field]]
id = "source_package"
label = "Source package"
type = "string"
position = 1
sources = ["man"]
[[commands.subcommand.field]]
id = "target_project"
label = "Target project"
description = "Use . for the default."
type = "string"
position = 2
sources = ["man"]
[[commands.subcommand.field]]
id = "target_package"
label = "Target package"
type = "string"
position = 3
sources = ["man"]
[[commands.subcommand.task]]
id = "branch_checkout"
label = "Branch and check out"
fields = ["source_project", "source_package", "checkout"]
required = ["source_project", "source_package"]
set = { checkout = [true] }
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["source_project", "source_package", "target_project", "target_package", "checkout", "message"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["force", "revision", "nodevelproject", "disable_build"]
[[commands.subcommand]]
path = ["commit"]
label = "Commit changes"
[[commands.subcommand.source]]
id = "man"
kind = "manual"
url = "https://manpages.debian.org/unstable/osc/osc.1.en.html"
revision = "Debian unstable"
evidence = """
osc ci # current dir
osc ci <dir>
osc ci file1 file2 ...
-m TEXT, --message TEXT: specify log message TEXT
-n, --no-message: do not specify a log message
-F FILE, --file FILE: read log message from FILE, '-' denotes standard input.
-f, --force: Allow empty commit with no changes. When committing a project, allow removing packages even if other packages depend on them.
"""
[[commands.subcommand.field]]
id = "message"
label = "Log message"
type = "string"
option = ["--message", "-m"]
sources = ["man"]
[[commands.subcommand.field]]
id = "no_message"
label = "No log message"
type = "boolean"
option = ["--no-message", "-n"]
sources = ["man"]
[[commands.subcommand.field]]
id = "file"
label = "Read message from file"
type = "path"
option = ["--file", "-F"]
path = { kind = "file", role = "input" }
sources = ["man"]
[[commands.subcommand.field]]
id = "force"
label = "Allow empty commit"
type = "boolean"
option = ["--force", "-f"]
effect = "overwrite"
sources = ["man"]
[[commands.subcommand.field]]
id = "paths"
label = "Directory or files"
description = "Omit to commit the current directory."
type = "path"
position = 0
multiple = true
path = { kind = "any", role = "input" }
sources = ["man"]
[[commands.subcommand.task]]
id = "commit"
label = "Commit with a message"
fields = ["message", "paths"]
required = ["message"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["message", "paths", "no_message", "file"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["force"]