IMAGEX_THREADS_OPTION,
IMAGEX_TO_STDOUT_OPTION,
IMAGEX_UNIX_DATA_OPTION,
+ IMAGEX_UNSAFE_COMPACT_OPTION,
IMAGEX_UPDATE_OF_OPTION,
IMAGEX_VERBOSE_OPTION,
IMAGEX_WIMBOOT_CONFIG_OPTION,
{T("update-of"), required_argument, NULL, IMAGEX_UPDATE_OF_OPTION},
{T("delta-from"), required_argument, NULL, IMAGEX_DELTA_FROM_OPTION},
{T("wimboot"), no_argument, NULL, IMAGEX_WIMBOOT_OPTION},
+ {T("unsafe-compact"), no_argument, NULL, IMAGEX_UNSAFE_COMPACT_OPTION},
{NULL, 0, NULL, 0},
};
static const struct option delete_options[] = {
{T("check"), no_argument, NULL, IMAGEX_CHECK_OPTION},
{T("soft"), no_argument, NULL, IMAGEX_SOFT_OPTION},
+ {T("unsafe-compact"), no_argument, NULL, IMAGEX_UNSAFE_COMPACT_OPTION},
{NULL, 0, NULL, 0},
};
{T("pipable"), no_argument, NULL, IMAGEX_PIPABLE_OPTION},
{T("not-pipable"), no_argument, NULL, IMAGEX_NOT_PIPABLE_OPTION},
{T("wimboot"), no_argument, NULL, IMAGEX_WIMBOOT_OPTION},
+ {T("unsafe-compact"), no_argument, NULL, IMAGEX_UNSAFE_COMPACT_OPTION},
{NULL, 0, NULL, 0},
};
{T("threads"), required_argument, NULL, IMAGEX_THREADS_OPTION},
{T("pipable"), no_argument, NULL, IMAGEX_PIPABLE_OPTION},
{T("not-pipable"), no_argument, NULL, IMAGEX_NOT_PIPABLE_OPTION},
+ {T("unsafe-compact"), no_argument, NULL, IMAGEX_UNSAFE_COMPACT_OPTION},
{NULL, 0, NULL, 0},
};
{T("no-acls"), no_argument, NULL, IMAGEX_NO_ACLS_OPTION},
{T("strict-acls"), no_argument, NULL, IMAGEX_STRICT_ACLS_OPTION},
{T("no-replace"), no_argument, NULL, IMAGEX_NO_REPLACE_OPTION},
+ {T("unsafe-compact"), no_argument, NULL, IMAGEX_UNSAFE_COMPACT_OPTION},
{NULL, 0, NULL, 0},
};
" make sure you have "
"concatenated together all parts."));
}
- } else if (ret == WIMLIB_ERR_METADATA_NOT_FOUND) {
+ } else if (ret == WIMLIB_ERR_METADATA_NOT_FOUND && wim) {
do_metadata_not_found_warning(wimfile, &info);
}
out_wimlib_free:
case IMAGEX_WIMBOOT_OPTION:
add_flags |= WIMLIB_ADD_FLAG_WIMBOOT;
break;
+ case IMAGEX_UNSAFE_COMPACT_OPTION:
+ if (cmd != CMD_APPEND) {
+ imagex_error(T("'--unsafe-compact' is only "
+ "valid for append!"));
+ goto out_err;
+ }
+ write_flags |= WIMLIB_WRITE_FLAG_UNSAFE_COMPACT;
+ break;
default:
goto out_usage;
}
case IMAGEX_SOFT_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_SOFT_DELETE;
break;
+ case IMAGEX_UNSAFE_COMPACT_OPTION:
+ write_flags |= WIMLIB_WRITE_FLAG_UNSAFE_COMPACT;
+ break;
default:
goto out_usage;
}
case IMAGEX_WIMBOOT_OPTION:
export_flags |= WIMLIB_EXPORT_FLAG_WIMBOOT;
break;
+ case IMAGEX_UNSAFE_COMPACT_OPTION:
+ write_flags |= WIMLIB_WRITE_FLAG_UNSAFE_COMPACT;
+ break;
default:
goto out_usage;
}
goto out_free_src_wim;
}
+ if (write_flags & WIMLIB_WRITE_FLAG_UNSAFE_COMPACT) {
+ imagex_error(T("'--unsafe-compact' is only valid when "
+ "exporting to an existing WIM file!"));
+ ret = -1;
+ goto out_free_src_wim;
+ }
+
/* dest_wimfile is not an existing file, so create a new WIM. */
if (compression_type == WIMLIB_COMPRESSION_TYPE_INVALID) {
case IMAGEX_NOT_PIPABLE_OPTION:
write_flags |= WIMLIB_WRITE_FLAG_NOT_PIPABLE;
break;
+ case IMAGEX_UNSAFE_COMPACT_OPTION:
+ write_flags |= WIMLIB_WRITE_FLAG_UNSAFE_COMPACT;
+ break;
default:
goto out_usage;
}
case IMAGEX_NO_REPLACE_OPTION:
default_add_flags |= WIMLIB_ADD_FLAG_NO_REPLACE;
break;
+ case IMAGEX_UNSAFE_COMPACT_OPTION:
+ write_flags |= WIMLIB_WRITE_FLAG_UNSAFE_COMPACT;
+ break;
default:
goto out_usage;
}