LinuxCommandLibrary

obs

Broadcast and record video content

TLDR

Launch OBS

$ obs
copy

Launch OBS in portable mode
$ obs [[-p|--portable]]
copy

Automatically start recording a video on launch
$ obs --startrecording
copy

Automatically start the replay buffer on launch
$ obs --startreplaybuffer
copy

Automatically start streaming on launch
$ obs --startstreaming
copy

Minimise to the system tray on launch
$ obs --minimize-to-tray
copy

Make the log more verbose (for debugging)
$ obs --verbose
copy

SYNOPSIS

obs [GLOBAL_OPTIONS] <SUBCOMMAND> [SUBCOMMAND_OPTIONS] [ARGUMENTS]

PARAMETERS

GLOBAL_OPTIONS
    Options that apply to the obs command itself, regardless of the subcommand. Common global options include --help (or -h) for displaying general help, --version (or -v) for showing the client version, --debug for verbose debugging output, --quiet (or -q) for suppressing output, --apiurl <URL> to specify the OBS API endpoint, and --config <FILE> to use a specific configuration file.

<SUBCOMMAND>
    The primary action to perform. obs is designed around a subcommand pattern, where different subcommands handle specific OBS functionalities. Examples include: build (to build packages), checkout (or co, to get a local copy of a project/package), commit (or ci, to upload local changes), ls (to list projects or packages), submit (to submit new packages or changes), request (to manage review or merge requests), prj (to manage projects), pkg (to manage packages), and search (to search for OBS packages).

[SUBCOMMAND_OPTIONS]
    Options specific to the chosen subcommand. Each subcommand typically has its own set of options to modify its behavior. For example, obs commit -m "message" uses the -m option for the commit subcommand.

[ARGUMENTS]
    Additional arguments required by the subcommand, such as project names, package names, file paths, or request IDs. For instance, obs checkout myproject/mypackage uses myproject/mypackage as an argument to the checkout subcommand.

DESCRIPTION

The obs command provides a powerful command-line interface for the Open Build Service (OBS). OBS is a generic system for building and distributing packages from sources in an automated, consistent, and reproducible manner. The obs client allows developers and users to manage their OBS projects, packages, requests, and repositories directly from the terminal. It supports various actions such as creating and modifying projects, adding and removing packages, submitting build requests, checking build statuses, managing review processes, and handling project configuration. It's an essential tool for anyone working with OBS, enabling scripting and automation of build workflows. It simplifies interactions with the OBS server, offering a comprehensive set of subcommands for almost every OBS task.

CAVEATS

The obs command requires proper configuration, including the OBS API URL and user credentials, often stored in a configuration file (e.g., ~/.config/obs/config). Its functionality is entirely dependent on a running OBS instance and the user's permissions within that instance. Due to the comprehensive nature of OBS, mastering the obs command line client can involve a significant learning curve to understand the underlying OBS concepts.

CONFIGURATION FILES

The obs client typically reads its configuration from files such as ~/.config/obs/config or, for backward compatibility, ~/.oscrc. These files store crucial information like the default OBS API URL, user authentication tokens, and other preferences. It's often necessary to set up this configuration before extensive use of the command.

TYPICAL WORKFLOW

A common workflow with obs involves using checkout to obtain a local working copy of an OBS project or package, making changes to source files or metadata locally, and then using commit to push those changes back to the OBS server. Users can also leverage subcommands like build to trigger builds, status to check build progress, and request to manage submissions and reviews.

HISTORY

The obs command is the modern, Python-based command-line client for the Open Build Service. It emerged as a successor to the older osc (Open Build Service Client), which was written in Perl. Its development aimed to provide a more consistent, robust, and user-friendly interface, better integrating with contemporary development workflows and leveraging Python's ecosystem. It has since become the officially recommended CLI client for interacting with OBS instances, reflecting the continuous evolution of the build service itself.

SEE ALSO

osc(1), git(1), rpm(8), dpkg(8)

Copied to clipboard