Add clean as an argument for cleaning build dir
This commit is contained in:
@@ -92,12 +92,42 @@ bool check_kernel(Nob_Cmd *cmd) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool clean_build() {
|
bool clean_dir(const char *dir_path) {
|
||||||
|
Nob_File_Paths children = {0};
|
||||||
|
if (!nob_read_entire_dir(dir_path, &children))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
bool ok = true;
|
||||||
|
for (size_t i = 0; i < children.count; ++i) {
|
||||||
|
const char *name = children.items[i];
|
||||||
|
|
||||||
|
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
const char *full_path = nob_temp_sprintf("%s/%s", dir_path, name);
|
||||||
|
if (!nob_delete_file(full_path)) {
|
||||||
|
nob_log(NOB_ERROR, "could not delete %s", full_path);
|
||||||
|
ok = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
nob_da_free(children);
|
||||||
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
NOB_GO_REBUILD_URSELF(argc, argv);
|
NOB_GO_REBUILD_URSELF(argc, argv);
|
||||||
|
|
||||||
|
if (argc >= 2) {
|
||||||
|
if (strcmp(argv[1], "clean") == 0) {
|
||||||
|
if (!clean_dir(BUILD_FOLDER))
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
nob_log(NOB_INFO, "Usage: %s (clean)", argv[0]);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!nob_mkdir_if_not_exists(BUILD_FOLDER))
|
if (!nob_mkdir_if_not_exists(BUILD_FOLDER))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user