Finish enabling merge functionality for rebuild fulldata mode

Signed-off-by: Lucas Karpinski <[email protected]>
---
 mkfs/main.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/mkfs/main.c b/mkfs/main.c
index 124a024..4c96e9d 100644
--- a/mkfs/main.c
+++ b/mkfs/main.c
@@ -105,6 +105,7 @@ static struct option long_options[] = {
        {"MZ", optional_argument, NULL, 537},
        {"xattr-prefix", required_argument, NULL, 538},
        {"xattr-inode-digest", required_argument, NULL, 539},
+       {"merge", no_argument, NULL, 540},
        {0, 0, 0, 0},
 };
 
@@ -254,6 +255,8 @@ static void usage(int argc, char **argv)
 #ifdef HAVE_ZLIB
                " --gzinfo[=X]           generate AWS SOCI-compatible zinfo in 
order to support random gzip access\n"
 #endif
+               " --merge                merge multiple EROFS images into one\n"
+               "                        Usage: mkfs.erofs --merge OUTPUT 
INPUT1 INPUT2 ...\n"
                " --vmdk-desc=X          generate a VMDK descriptor file to 
merge sub-filesystems\n"
 #ifdef EROFS_MT_ENABLED
                " --workers=#            set the number of worker threads to # 
(default: %u)\n"
@@ -1093,13 +1096,15 @@ static int mkfs_parse_sources(int argc, char *argv[], 
int optind)
                }
                break;
 #endif
+       case EROFS_MKFS_SOURCE_REBUILD:
+               break;
        default:
                erofs_err("unexpected source_mode: %d", source_mode);
                return -EINVAL;
        }
 
        if (source_mode == EROFS_MKFS_SOURCE_REBUILD) {
-               char *srcpath = cfg.c_src_path;
+               char *srcpath = cfg.c_src_path ? cfg.c_src_path : 
argv[optind++];
                struct erofs_sb_info *src;
 
                do {
@@ -1550,6 +1555,10 @@ static int mkfs_parse_options_cfg(struct 
erofs_importer_params *params,
                                return err;
                        }
                        break;
+               case 540:
+                       source_mode = EROFS_MKFS_SOURCE_REBUILD;
+                       dataimport_mode = EROFS_MKFS_DATA_IMPORT_FULLDATA;
+                       break;
                case 'V':
                        version();
                        exit(0);

-- 
Git-155)

Reply via email to