KCoreAddons

kosrelease.h
1/*
2 SPDX-FileCopyrightText: 2014-2019 Harald Sitter <sitter@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5*/
6
7#ifndef KOSRELEASE_H
8#define KOSRELEASE_H
9
10#include <kcoreaddons_export.h>
11
12#include <QString>
13#include <QStringList>
14
15#include <memory>
16
17/**
18 * @brief The OSRelease class parses /etc/os-release files
19 *
20 * https://www.freedesktop.org/software/systemd/man/os-release.html
21 *
22 * os-release is a free desktop standard for describing an operating system.
23 * This class parses and models os-release files.
24 *
25 * @since 5.58.0
26 */
27class KCOREADDONS_EXPORT KOSRelease final
28{
29public:
30 /**
31 * Constructs a new OSRelease instance. Parsing happens in the constructor
32 * and the data is not cached across instances.
33 *
34 * @note The format specification makes no assertions about trailing #
35 * comments being supported. They result in undefined behavior.
36 *
37 * @param filePath The path to the os-release file. By default the first
38 * available file of the paths specified in the os-release manpage is
39 * parsed.
40 */
41 explicit KOSRelease(const QString &filePath = QString());
43
44 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#NAME= */
45 QString name() const;
46 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#VERSION= */
47 QString version() const;
48 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#ID= */
49 QString id() const;
50 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#ID_LIKE= */
51 QStringList idLike() const;
52 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#VERSION_CODENAME= */
54 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#VERSION_ID= */
55 QString versionId() const;
56 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#PRETTY_NAME= */
57 QString prettyName() const;
58 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#ANSI_COLOR= */
59 QString ansiColor() const;
60 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#CPE_NAME= */
61 QString cpeName() const;
62 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#HOME_URL= */
63 QString homeUrl() const;
64 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#HOME_URL= */
66 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#HOME_URL= */
67 QString supportUrl() const;
68 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#HOME_URL= */
69 QString bugReportUrl() const;
70 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#HOME_URL= */
72 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#BUILD_ID= */
73 QString buildId() const;
74 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#VARIANT= */
75 QString variant() const;
76 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#VARIANT_ID= */
77 QString variantId() const;
78 /** @see https://www.freedesktop.org/software/systemd/man/os-release.html#LOGO= */
79 QString logo() const;
80
81 /**
82 * Extra keys are keys that are unknown or specified by a vendor.
83 */
84 QStringList extraKeys() const;
85
86 /** Extra values are values assoicated with keys that are unknown. */
87 QString extraValue(const QString &key) const;
88
89private:
90 Q_DISABLE_COPY(KOSRelease)
91
92 std::unique_ptr<class KOSReleasePrivate> const d;
93};
94
95#endif // KOSRELEASE_H
QString documentationUrl() const
QString buildId() const
QString version() const
QString extraValue(const QString &key) const
Extra values are values assoicated with keys that are unknown.
QString supportUrl() const
QString bugReportUrl() const
QString versionCodename() const
QString privacyPolicyUrl() const
QString versionId() const
QString cpeName() const
QString ansiColor() const
QString id() const
QStringList idLike() const
QString homeUrl() const
QString prettyName() const
QString logo() const
QString name() const
QStringList extraKeys() const
Extra keys are keys that are unknown or specified by a vendor.
KOSRelease(const QString &filePath=QString())
Constructs a new OSRelease instance.
QString variantId() const
QString variant() const
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Jan 31 2025 11:58:24 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.