summaryrefslogtreecommitdiff
path: root/lib/common/compress.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/common/compress.c')
-rw-r--r--lib/common/compress.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/common/compress.c b/lib/common/compress.c
new file mode 100644
index 0000000..04e1f40
--- /dev/null
+++ b/lib/common/compress.c
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-3.0-or-later */
+/*
+ * compress.c
+ *
+ * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at>
+ */
+#include "common.h"
+
+E_SQFS_COMPRESSOR compressor_get_default(void)
+{
+ if (sqfs_compressor_exists(SQFS_COMP_XZ))
+ return SQFS_COMP_XZ;
+
+ if (sqfs_compressor_exists(SQFS_COMP_ZSTD))
+ return SQFS_COMP_ZSTD;
+
+ return SQFS_COMP_GZIP;
+}
+
+void compressor_print_available(void)
+{
+ int i;
+
+ fputs("Available compressors:\n", stdout);
+
+ for (i = SQFS_COMP_MIN; i <= SQFS_COMP_MAX; ++i) {
+ if (sqfs_compressor_exists(i))
+ printf("\t%s\n", sqfs_compressor_name_from_id(i));
+ }
+
+ printf("\nDefault compressor: %s\n",
+ sqfs_compressor_name_from_id(compressor_get_default()));
+}