summaryrefslogtreecommitdiff
path: root/hyprpm/src/helpers/Sys.hpp
blob: b44eb75809c1bd929a5e8546576c654d40238e38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include <string>

namespace NSys {
    bool isSuperuser();
    int  getUID();
    int  getEUID();

    // NOLINTNEXTLINE
    namespace root {
        void cacheSudo();
        void dropSudo();

        //
        [[nodiscard("Discarding could lead to vulnerabilities and bugs")]] bool createDirectory(const std::string& path, const std::string& mode);
        [[nodiscard("Discarding could lead to vulnerabilities and bugs")]] bool removeRecursive(const std::string& path);
        [[nodiscard("Discarding could lead to vulnerabilities and bugs")]] bool install(const std::string& what, const std::string& where, const std::string& mode);

        // Do not use this unless absolutely necessary!
        std::string runAsSuperuserUnsafe(const std::string& cmd);
    };
};