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 ## Usage
```commandline ```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: Optional arguments:
-h, --help shows help message and exits -h, --help prints help message and exits
-v, --version prints version information and exits --version shows version and exits
-n, --name av display name [default: "https://github.com/es3n1n/defendnot"] -n, --name av display name [default: "https://github.com/es3n1n/defendnot"]
-d, --disable disable defendnot -d, --disable disable defendnot
-v, --verbose verbose logging -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 ## Writeup

View File

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

View File

@@ -11,7 +11,7 @@
namespace { namespace {
void setup_window(const loader::Config& config) { 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(); shared::alloc_console();
} }
} }
@@ -68,7 +68,7 @@ namespace {
std::println("thanks for using {}", names::kProjectName); std::println("thanks for using {}", names::kProjectName);
std::println("please don't forget to leave a star at {}", names::kRepoUrl); 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"); 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("-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("-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("-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("--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("--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); 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{ auto config = loader::Config{
.name = program.get<std::string>("-n"), .name = program.get<std::string>("-n"),
.disable = program.get<bool>("-d"), .disable = program.get<bool>("-d"),
.alloc_console = !program.get<bool>("--silent"),
.verbose = program.get<bool>("-v"), .verbose = program.get<bool>("-v"),
.from_autorun = program.get<bool>("--from-autorun"), .from_autorun = program.get<bool>("--from-autorun"),
.autorun_type = program.get<bool>("--autorun-as-user") ? /// As system on boot is the default value .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"), .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_window(config);
setup_context(config); setup_context(config);