Merge pull request #15 from es3n1n/add-silent-arg

feat(loader): add --silent
This commit is contained in:
Arsenii es3n1n
2025-05-19 22:01:54 +09:00
committed by GitHub
3 changed files with 18 additions and 8 deletions

View File

@@ -20,14 +20,17 @@ Sadly, to keep this WSC stuff even after reboot, defendnot adds itself to the au
## Usage
```commandline
Usage: defendnot-loader [--help] [--version] [--name VAR] [--disable] [--verbose]
Usage: defendnot-loader [--help] [--version] [--name VAR] [--disable] [--verbose] [--silent] [--autorun-as-user] [--disable-autorun]
Optional arguments:
-h, --help shows help message and exits
-v, --version prints version information and exits
-h, --help prints help message and exits
--version shows version and exits
-n, --name av display name [default: "https://github.com/es3n1n/defendnot"]
-d, --disable disable defendnot
-v, --verbose verbose logging
--silent do not allocate console
--autorun-as-user create autorun task as currently logged in user
--disable-autorun disable autorun task creation
```
## Writeup

View File

@@ -14,6 +14,7 @@ namespace loader {
public:
std::string name;
bool disable;
bool alloc_console;
bool verbose;
bool from_autorun;
AutorunType autorun_type;

View File

@@ -11,7 +11,7 @@
namespace {
void setup_window(const loader::Config& config) {
if (!config.from_autorun || config.verbose) {
if ((!config.from_autorun || config.verbose) && config.alloc_console) {
shared::alloc_console();
}
}
@@ -68,7 +68,7 @@ namespace {
std::println("thanks for using {}", names::kProjectName);
std::println("please don't forget to leave a star at {}", names::kRepoUrl);
if (!config.from_autorun) {
if (!config.from_autorun && config.alloc_console) {
system("pause");
}
}
@@ -100,6 +100,7 @@ int main(int argc, char* argv[]) try {
program.add_argument("-n", "--name").help("av display name").default_value(std::string(names::kRepoUrl)).nargs(1);
program.add_argument("-d", "--disable").help(std::format("disable {}", names::kProjectName)).default_value(false).implicit_value(true);
program.add_argument("-v", "--verbose").help("verbose logging").default_value(false).implicit_value(true);
program.add_argument("--silent").help("do not allocate console").default_value(false).implicit_value(true);
program.add_argument("--autorun-as-user").help("create autorun task as currently logged in user").default_value(false).implicit_value(true);
program.add_argument("--disable-autorun").help("disable autorun task creation").default_value(false).implicit_value(true);
program.add_argument("--from-autorun").hidden().default_value(false).implicit_value(true);
@@ -117,6 +118,7 @@ int main(int argc, char* argv[]) try {
auto config = loader::Config{
.name = program.get<std::string>("-n"),
.disable = program.get<bool>("-d"),
.alloc_console = !program.get<bool>("--silent"),
.verbose = program.get<bool>("-v"),
.from_autorun = program.get<bool>("--from-autorun"),
.autorun_type = program.get<bool>("--autorun-as-user") ? /// As system on boot is the default value
@@ -125,6 +127,10 @@ int main(int argc, char* argv[]) try {
.enable_autorun = !program.get<bool>("--disable-autorun"),
};
if (!config.alloc_console && config.verbose) {
fatal_print("--silent flag can not be used in combination with --verbose");
}
setup_window(config);
setup_context(config);