Made some minor modifications
This commit is contained in:
parent
d925445876
commit
332f5ccfd0
@ -14,6 +14,7 @@ Command COMMANDS[] = {
|
||||
{CMD_LIST_ENTRIES, "list-entries", "", "Lists all entries in the pool", "TODO"},
|
||||
{CMD_CLEAR_ENTRIES, "clear-entries", "", "Clears all entries from the pool", "TODO"},
|
||||
{CMD_SEPARATOR},
|
||||
{CMD_SYNC, "sync", "", "Synchronizes the backing pool with the server", "TODO"},
|
||||
{CMD_ADD_BACKING, "add-backing", "<entry>", "Adds a backing disk to the pool from the given entry", "TODO"},
|
||||
{CMD_REMOVE_BACKING, "remove-backing", "<backing>", "Removes a backing disk from the pool", "TODO"},
|
||||
{CMD_LIST_BACKINGS, "list-backings", "[--tree|-t]", "Lists all backing disks in the pool", "TODO"},
|
||||
@ -53,6 +54,7 @@ Command* find_command(const char* name) {
|
||||
void show_help() {
|
||||
printf("Usage: sandbox <command> [args]\n\n");
|
||||
printf("Commands:\n");
|
||||
|
||||
for (size_t i = 0; i < sizeof(COMMANDS) / sizeof(COMMANDS[0]); i++) {
|
||||
if (COMMANDS[i].id == CMD_SEPARATOR) {
|
||||
printf("\n");
|
||||
@ -62,20 +64,11 @@ void show_help() {
|
||||
printf(" %s %s\n", COMMANDS[i].name, COMMANDS[i].args);
|
||||
printf(" %s\n", COMMANDS[i].description);
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
printf("For more information about a specific command, use 'sandbox help <command>'.\n");
|
||||
}
|
||||
|
||||
void show_command_help(const Command* command) {
|
||||
printf("Usage: sandbox %s %s\n", command->name, command->args);
|
||||
printf(" %s\n", command->description);
|
||||
|
||||
if (command->details != NULL) {
|
||||
printf("\n");
|
||||
printf("%s\n", command->details);
|
||||
}
|
||||
}
|
||||
|
||||
int cmd_help(int argc, char** argv) {
|
||||
if (argc == 0) {
|
||||
show_help();
|
||||
@ -88,7 +81,13 @@ int cmd_help(int argc, char** argv) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
show_command_help(command);
|
||||
printf("Usage: sandbox %s %s\n", command->name, command->args);
|
||||
printf(" %s\n", command->description);
|
||||
|
||||
if (command->details != NULL) {
|
||||
printf("\n");
|
||||
printf("%s\n", command->details);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,7 @@ typedef enum {
|
||||
CMD_LIST_ENTRIES,
|
||||
CMD_CLEAR_ENTRIES,
|
||||
|
||||
CMD_SYNC,
|
||||
CMD_ADD_BACKING,
|
||||
CMD_REMOVE_BACKING,
|
||||
CMD_LIST_BACKINGS,
|
||||
@ -43,10 +44,6 @@ Command* find_command(const char* name);
|
||||
/// @brief Shows the help for all commands.
|
||||
void show_help();
|
||||
|
||||
/// @brief Shows the help for a specific command.
|
||||
/// @param command The command to show the help for.
|
||||
void show_command_help(const Command* command);
|
||||
|
||||
int cmd_help(int argc, char** argv);
|
||||
|
||||
int cmd_version(int argc, char** argv);
|
12
src/disk.c
12
src/disk.c
@ -15,10 +15,8 @@ bool create_empty_disk(const char* path, uint64_t size) {
|
||||
|
||||
// Convert the size to a string
|
||||
char* size_str = format("%lu", size);
|
||||
if (size_str == NULL) {
|
||||
log_message(LOG_ERROR, "Failed to allocate memory for the size string.");
|
||||
if (size_str == NULL)
|
||||
return false;
|
||||
}
|
||||
|
||||
// Create the disk
|
||||
int ret = execute(NULL, &errb, "qemu-img", "create", "-f", "qcow2", path, size_str, NULL);
|
||||
@ -71,10 +69,8 @@ bool create_backed_disk(const char* path, const char* backing_disk) {
|
||||
|
||||
bool trim_disk(const char* path) {
|
||||
char* tmp_path = format("%s.tmp", path);
|
||||
if (tmp_path == NULL) {
|
||||
log_message(LOG_ERROR, "Failed to allocate memory for the temporary disk path.");
|
||||
if (tmp_path == NULL)
|
||||
return false;
|
||||
}
|
||||
|
||||
DiskInfo info;
|
||||
if (!get_disk_info(path, &info)) {
|
||||
@ -90,10 +86,8 @@ bool trim_disk(const char* path) {
|
||||
if (info.backing_file != NULL) {
|
||||
char* backing_str = format("backing_file=%s", info.backing_file);
|
||||
if (backing_str == NULL) {
|
||||
log_message(LOG_ERROR, "Failed to allocate memory for the backing file string.");
|
||||
|
||||
free_disk_info(&info);
|
||||
free(tmp_path);
|
||||
free_disk_info(&info);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -20,11 +20,13 @@ int main(int argc, char* argv[]) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
int consumed = 2;
|
||||
|
||||
switch (command->id) {
|
||||
case CMD_HELP:
|
||||
return cmd_help(argc - 2, argv + 2);
|
||||
return cmd_help(argc - consumed, argv + consumed);
|
||||
case CMD_VERSION:
|
||||
return cmd_version(argc - 2, argv + 2);
|
||||
return cmd_version(argc - consumed, argv + consumed);
|
||||
|
||||
default:
|
||||
log_message(LOG_ERROR, "Command '%s' is not implemented.", command->name);
|
||||
|
@ -23,8 +23,10 @@ char* format(const char* fmt, ...) {
|
||||
|
||||
va_end(args);
|
||||
|
||||
if (length <= 0)
|
||||
if (length <= 0) {
|
||||
log_message(LOG_ERROR, "Failed to calculate the length of the formatted string.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Allocate a buffer for the formatted string
|
||||
char* buffer = calloc(length, sizeof(char));
|
||||
|
Loading…
Reference in New Issue
Block a user