static int remove_binaries(const char *esp_path) { char *p; int r, q; if (asprintf(&p, "%s/EFI/systemd-boot", esp_path) < 0) { fprintf(stderr, "Out of memory.\n"); return -ENOMEM; } r = rm_rf(p, false, false, false); free(p); q = remove_boot_efi(esp_path); if (q < 0 && r == 0) r = q; q = rmdir_one(esp_path, "loader/entries"); if (q < 0 && r == 0) r = q; q = rmdir_one(esp_path, "loader"); if (q < 0 && r == 0) r = q; q = rmdir_one(esp_path, "EFI/Boot"); if (q < 0 && r == 0) r = q; q = rmdir_one(esp_path, "EFI/systemd-boot"); if (q < 0 && r == 0) r = q; q = rmdir_one(esp_path, "EFI"); if (q < 0 && r == 0) r = q; return r; }
static int remove_binaries(const char *esp_path) { char *p; int r, q; unsigned i; p = strjoina(esp_path, "/EFI/systemd"); r = rm_rf(p, REMOVE_ROOT|REMOVE_PHYSICAL); q = remove_boot_efi(esp_path); if (q < 0 && r == 0) r = q; for (i = ELEMENTSOF(efi_subdirs); i > 0; i--) { q = rmdir_one(esp_path, efi_subdirs[i-1]); if (q < 0 && r == 0) r = q; } return r; }