80 lines
3.0 KiB
C++
80 lines
3.0 KiB
C++
![]() |
#include "commands.hpp"
|
||
|
|
||
|
int cmd_create(int argc, char** argv) {
|
||
|
// create a container for commandline options
|
||
|
BuildOptions options;
|
||
|
|
||
|
// Parse command-line options
|
||
|
int parse_result = parse_create_options(argc, argv, options);
|
||
|
if (parse_result != 0) {
|
||
|
return parse_result;
|
||
|
}
|
||
|
|
||
|
// If help was requested, show it and return
|
||
|
if (options.show_help) {
|
||
|
return cmd_help(argc, argv);
|
||
|
}
|
||
|
|
||
|
// Validate options
|
||
|
int validate_result = validate_build_options(options);
|
||
|
if (validate_result != 0) {
|
||
|
return validate_result;
|
||
|
}
|
||
|
|
||
|
// Log the operation
|
||
|
if (options.verbose) {
|
||
|
dpm_log(LOG_INFO, "Creating DPM package with the following options:");
|
||
|
dpm_log(LOG_INFO, (" Output directory: " + options.output_dir).c_str());
|
||
|
dpm_log(LOG_INFO, (" Contents directory: " + options.contents_dir).c_str());
|
||
|
dpm_log(LOG_INFO, (" Metadata directory: " + options.metadata_dir).c_str());
|
||
|
|
||
|
if (!options.hooks_dir.empty()) {
|
||
|
dpm_log(LOG_INFO, (" Hooks directory: " + options.hooks_dir).c_str());
|
||
|
}
|
||
|
|
||
|
if (!options.package_name.empty()) {
|
||
|
dpm_log(LOG_INFO, (" Package name: " + options.package_name).c_str());
|
||
|
}
|
||
|
|
||
|
if (options.force) {
|
||
|
dpm_log(LOG_INFO, " Force: Yes");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// For now, just log that we would create the package
|
||
|
dpm_log(LOG_INFO, "Package creation functionality not yet implemented");
|
||
|
dpm_log(LOG_INFO, "Would create package using the provided options");
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
int cmd_help(int argc, char** argv) {
|
||
|
dpm_log(LOG_INFO, "DPM Build Module - Creates DPM packages according to specification");
|
||
|
dpm_log(LOG_INFO, "Available commands:");
|
||
|
dpm_log(LOG_INFO, " create - Create a new DPM package");
|
||
|
dpm_log(LOG_INFO, " help - Display this help message");
|
||
|
dpm_log(LOG_INFO, "");
|
||
|
dpm_log(LOG_INFO, "Usage: dpm build create [options]");
|
||
|
dpm_log(LOG_INFO, "Options:");
|
||
|
dpm_log(LOG_INFO, " -o, --output-dir DIR Directory to save the built package (default: current directory)");
|
||
|
dpm_log(LOG_INFO, " -c, --contents DIR Directory with package contents (required)");
|
||
|
dpm_log(LOG_INFO, " -m, --metadata DIR Directory with package metadata (required)");
|
||
|
dpm_log(LOG_INFO, " -H, --hooks DIR Directory with package hooks (optional)");
|
||
|
dpm_log(LOG_INFO, " -n, --name NAME Package name (required if not in metadata)");
|
||
|
dpm_log(LOG_INFO, " -f, --force Force package creation even if warnings occur");
|
||
|
dpm_log(LOG_INFO, " -v, --verbose Enable verbose output");
|
||
|
dpm_log(LOG_INFO, " -h, --help Display this help message");
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
int cmd_unknown(const char* command, int argc, char** argv) {
|
||
|
std::string msg = "Unknown command: ";
|
||
|
msg += (command ? command : "");
|
||
|
dpm_log(LOG_WARN, msg.c_str());
|
||
|
dpm_log(LOG_WARN, "Run 'dpm build help' for a list of available commands");
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
|
||
|
|