Skip to content

GLRD CLI Reference

This page documents all flags and options for the glrd and glrd-manage command-line tools.

glrd

glrd queries the Garden Linux Release Database (GLRD) and outputs release information in various formats.

Usage

text
usage: glrd [-h] [--input-format {yaml,json}]
            [--input-file-prefix INPUT_FILE_PREFIX] [--input-type {file,url}]
            [--input-url INPUT_URL] [--no-input-split]
            [--output-format {json,yaml,markdown,mermaid_gantt,shell}]
            [--output-description OUTPUT_DESCRIPTION] [--active] [--archived]
            [--latest] [--type TYPE] [--version VERSION] [--fields FIELDS]
            [--no-header] [-V]

Process and filter releases data from a file or URL.

Options

FlagDefaultDescription
-h, --helpShow the help message and exit.
--input-format {yaml,json}jsonInput format for release data.
--input-file-prefix PREFIXreleasesPrefix used to locate input files when --input-type file is set.
--input-type {file,url}urlSource of release data. Use file to read local files; use url to query the S3 endpoint.
--input-url URLgardenlinux-glrd S3 URLBase URL for release data. Only used when --input-type url.
--no-input-splitRead a single input file instead of separate *-nightly and *-dev files.
--output-format {json,yaml,markdown,mermaid_gantt,shell}shellOutput format for results.
--output-description TEXTGarden Linux ReleasesDescription string included in outputs that support it (for example, Mermaid Gantt chart titles).
--activeShow only currently active releases (end-of-life date in the future).
--archivedShow only archived releases (end-of-life date in the past).
--latestShow the single latest active major.minor.patch release.
--type TYPEmajor,minorComma-separated list of release types to include. Valid values: major, minor, nightly, dev, next.
--version VERSIONFilter by a specific version. Accepts major (for example, 1312), major.minor (for example, 1312.0), or major.minor.patch (for example, 1312.0.0).
--fields FIELDSsee belowComma-separated list of output fields.
--no-headerOmit the column header row in shell output.
-VShow the program version number and exit.

Default output fields

When --fields is not specified, glrd outputs these columns:

text
Name,Version,Type,GitCommitShort,ReleaseDate,ExtendedMaintenance,EndOfMaintenance

Available output fields

Field nameDescription
NameRelease name (for example, minor-1592.6).
VersionVersion string (for example, 1592.6).
TypeRelease type (major, minor, nightly, dev, next).
GitCommitFull 40-character git commit SHA.
GitCommitShortShort git commit hash.
ReleaseDateRelease date in YYYY-MM-DD format.
ReleaseTimeRelease Unix timestamp.
ExtendedMaintenanceExtended maintenance start date, or N/A.
EndOfMaintenanceEnd-of-life date.
FlavorsComma-separated list of build flavors.
OCIOCI container image reference.
AttributesSourceRepoWhether Debian source repositories are available.

glrd-manage

glrd-manage creates, updates, and manages Garden Linux release entries in GLRD.

Usage

text
usage: glrd-manage [-h] [--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
                   [--input-file INPUT_FILE] [--input-type {file,url}]
                   [--input-url INPUT_URL]
                   [--input-file-prefix INPUT_FILE_PREFIX]
                   [--query-input-format {yaml,json}]
                   [--output-format {yaml,json}]
                   [--output-file-prefix OUTPUT_FILE_PREFIX]
                   [--s3-bucket-name S3_BUCKET_NAME]
                   [--s3-bucket-region S3_BUCKET_REGION]
                   [--s3-bucket-prefix S3_BUCKET_PREFIX] [--delete DELETE]
                   [--update UPDATE]
                   [--create-initial-releases CREATE_INITIAL_RELEASES]
                   [--create CREATE] [--version VERSION] [--commit COMMIT]
                   [--no-flavors]
                   [--lifecycle-released-isodatetime LIFECYCLE_RELEASED_ISODATETIME]
                   [--lifecycle-extended-isodatetime LIFECYCLE_EXTENDED_ISODATETIME]
                   [--lifecycle-eol-isodatetime LIFECYCLE_EOL_ISODATETIME]
                   [--no-query] [--input-stdin] [--input] [--no-output-split]
                   [--s3-create-bucket] [--s3-update] [--output-all]
                   [--input-all] [-V]

Manage Garden Linux releases data.

Options

General

FlagDefaultDescription
-h, --helpShow the help message and exit.
--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}Set the logging verbosity level.
-VShow the program version number and exit.

Input

FlagDefaultDescription
--input-file FILEreleases-input.yamlInput file path for --input mode.
--input-type {file,url}urlSource for querying existing releases when --no-query is not set. Use file for fully offline operation.
--input-url URLgardenlinux-glrd S3 URLBase URL for querying existing releases. Only used with --input-type url.
--input-file-prefix PREFIXreleasesFile prefix for querying existing releases from local files. Only used with --input-type file.
--query-input-format {yaml,json}jsonFormat of existing release data queried when not using --no-query.
--input-stdinRead a single release entry from standard input (JSON).
--inputRead release data from --input-file.
--input-allUpload all local release files to S3.

Output

FlagDefaultDescription
--output-format {yaml,json}yamlOutput format for generated release files.
--output-file-prefix PREFIXreleasesPrefix for generated output files.
--no-output-splitWrite a single output file instead of separate *-nightly and *-dev files.
--output-allDownload all release files from S3 to local disk.

S3 configuration

FlagDefaultDescription
--s3-bucket-name NAMEgardenlinux-glrdName of the Amazon S3 bucket.
--s3-bucket-region REGIONeu-central-1AWS region of the S3 bucket.
--s3-bucket-prefix PREFIX(empty)Object key prefix within the S3 bucket.
--s3-create-bucketCreate the S3 bucket if it does not exist.
--s3-updatePush generated files to S3. Without this flag, changes are written locally only.

Release actions

FlagFormatDescription
--create-initial-releases LISTmajor,minor,nightlyFetch release history from GitHub and generate initial release data for the specified types.
--create TYPEmajor|minor|nightly|dev|nextCreate a new release of the given type using the current timestamp and git state.
--update RELEASEtype-major, type-major.minor, or type-major.minor.patchUpdate lifecycle fields or commit hash on an existing release. Requires at least one modifier flag.
--delete RELEASEtype-major.minor or type-major.minor.patchDelete a release by name. Requires --s3-update.

Release modifiers (used with --create or --update)

FlagFormatDescription
--version VERSIONmajor.minor or major.minor.patchOverride the version. Use major.minor for versions < 2017.0.0; use major.minor.patch for versions ≥ 2017.0.0.
--commit HASH40-character hex stringOverride the git commit hash. Valid for minor, nightly, and dev types only.
--no-flavorsSkip the Git clone and S3 lookup for flavor resolution. Useful for offline use and tests. Can also be set via the GLRD_SKIP_FLAVORS environment variable.
--lifecycle-released-isodatetime DATETIMEYYYY-MM-DDTHH:MM:SSOverride the release date and time.
--lifecycle-extended-isodatetime DATETIMEYYYY-MM-DDTHH:MM:SSOverride the extended maintenance date. Valid for major and next types only.
--lifecycle-eol-isodatetime DATETIMEYYYY-MM-DDTHH:MM:SSOverride the end-of-life date. Valid for next, major, and minor types only.

Query control

FlagDescription
--no-queryDo not query existing releases before writing. Use with care — omitting the existing data can overwrite or delete releases.