diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-05-19 19:28:15 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-05-19 19:28:15 +0200 |
| commit | 146b189d54e51609634d9dc4b1ab47f9e3c91d49 (patch) | |
| tree | 46736322d00b6798c1e9458278cf6c53d23dad10 /src/main.cpp | |
| parent | 36be9c4a11833dfceea8a2edeee0087d2f1620b1 (diff) | |
disallow running with sudo
unless you use the --i-am-really-stupid flag
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp index 7cbef959..cdad06e7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,12 +2,33 @@ #include "debug/Log.hpp" #include "Compositor.hpp" #include "config/ConfigManager.hpp" +#include "init/initHelpers.hpp" + +// I am a bad bad boy and have used some global vars here, +// just for this file +bool ignoreSudo = false; int main(int argc, char** argv) { if (!getenv("XDG_RUNTIME_DIR")) RIP("XDG_RUNTIME_DIR not set!"); + // parse some args + for (int i = 1; i < argc; ++i) { + if (!strcmp(argv[i], "--i-am-really-stupid")) + ignoreSudo = true; + } + + if (!ignoreSudo) { + if (Init::isSudo()) { + Debug::log(CRIT, "Hyprland shall not be run as the root user. If you really want to, use the --i-am-really-stupid flag."); + return 1; + } + } else { + Debug::log(WARN, "Running with ignored root checks, I surely hope you know what you're doing."); + sleep(1); + } + Debug::log(LOG, "Welcome to Hyprland!"); // let's init the compositor. |
