USAGE
    ./devkit sys-mig [-c {stmt|sbom|mvn_analyse}] [-cf INPUT_PATH] [-d INPUT_PATH] [-src INPUT_PATH] [-o INPUT_PATH] [-t FILE_PATH] [-pid PROCESS_ID] [-pname PROCESS_NAME] [-f {html|json}] [-e {version|checkOutPath}] [-l {0,1,2,3}] [-mn GROUP_NAME]

OPTIONS
    -h, --help
    Show this help message and exit.

    -ec --encipher
    Encrypt the user password and exit.

    -c, --command {stmt,sbom,mvn_analyse}
    Type of information to be collected. The options are stmt (default), sbom, and mvn_analyse. stmt generates a CSV report,
    sbom generates a detailed HTML or JSON report, and mvn_analyse generates an HTML report.

    -cf, --config <file>
    Configuration file path of the input parameter. The default file path is ./sys-mig/resources/sysmig_default.conf.

    -d, --directory <path> [<path> ...]
    Directory of scanning for collected information. You can enter multiple directories (the current directory by default).
    Separate multiple directories with spaces(Example: -d /home/jar /home/ear).
    If the name of the folder to be scanned contains spaces, use single quotation marks(') to mark the parameter(Example: -d '/home/easy jar').

    -src, --source <Path>[<Path>...]
    This parameter is used in stmt mode. It indicates the directories scanned to collect the number of source code lines. You can enter multiple directories.
    Separate directories with spaces, for example, -src /home/example1 /home/example2.
    Supported source code languages: Java, C, C++, Python, Shell, JS, HTML and CSS.
    If the name of a directory to be scanned contains spaces, use single quotation marks (') to mark the parameter, for example, -src '/home/example 1'.

    -o, --output <path>
    Report output directory. (The default is the report directory where the binary file is located.)

    -t, --template <file>
    This parameter is used in stmt mode. It indicates the path of the CSV report template. By default, the CSV report is generated based on the built-in template.
    For details about the template, see ./sys-mig/resources/stmt_template_default.csv.
    Built-in variables used in the template include ${cpuCores}, ${memory}, ${middleware}, ${dbType}, ${osSystem}, ${ip}, and ${hostName}, and they cannot be modified.

    -s, --show <path>
    Use this parameter in stmt mode to display the middleware and database source paths.

    -f, --format {html,json} [{html,json} ...]
    This parameter is used in sbom mode. It indicates the formats of the generated report. The options are HTML and json. You can select either or both of the report formats. The default value is html json.
    Separate report formats with spaces. Example: -f html json.

    -e, --exclude-fields {version,checkOutPath} [{version,checkOutPath} ...]
    This parameter is used in sbom mode. It excludes the component version (Version) or checkout path (checkOutPath) or both.
    Separate multiple options with spaces. Example: -e version checkOutPath.

    -l, --log-level {0,1,2,3}
    Log level. The options are 0(DEBUG), 1(INFO), 2(WARNING), and 3(ERROR). The default value is 1(INFO).

    -db, --db-config <config> [<config> ...]
    This parameter is used in stmt mode on Linux. It indicates the database information to be collected.
    Database information of multiple hosts can be collected. Separate multiple pieces of database information with spaces.
    In the configuration file, provide the user, host address, port, type, and encrypted password of each database. Example, user@host:port:databaseType encr-passwd:*****.
    If password-free login is enabled, you do not need to set the encr-passwd field. For example, user@host:port:databaseType encr-passwd:.
    In the CLI, you only need to provide the user, host address, port number, and type of the database. For example, user@host:port:databaseType.
    The password is entered through the terminal interaction. After entering the password, press Enter.
    The value of databaseType must be mysql. Each database allows only three connection attempts.
    If attempts of connecting to a database fail for more than three times, the information about that database will not be collected.

    -v, --version
    Program version information.

    -mn, --multi-node <all,ungrouped,group_name>
    This parameter is used in stmt or sbom mode on Linux. Scans a server group remotely.
    By default, all groups belong to the [all] group, and ungrouped servers belong to the [ungrouped] group.
    The configuration file is located in ./nodes/nodes.conf. For configuration details, see the document at
    https://www.hikunpeng.com/document/detail/zh/kunpengdevps/userguide/cliuserguide/KunpengDevKitCli_0062.html.

    -pid, --process_id <pid>[<pid>...]
    Dynamically scans for Java applications with specified process IDs. You can enter multiple Java application process IDs.
    Separate process IDs using spaces, for example, -pid pid1 pid2.
    This parameter is optional and applies only to Java applications in sbom mode on Linux. It has no mapping with -pname.

    -pname, --process_name <pname>[<pname>...]
    Dynamically scans for Java applications with specified process names. You can enter multiple Java application process names.
    Separate process names using spaces, for example, -pname pname1 pname2.
    This parameter is optional and applies only to Java applications in sbom mode on Linux. It has no mapping with -pid.

EXAMPLE
    ./devkit sys-mig -c stmt -cf /home/config.conf -d /usr/local /usr/jar -src /home/example1 /home/example2 -o /home/report -t /home/template/stmt_template_default.csv -l 1

    ./devkit sys-mig -c sbom -cf /home/config.conf -d /home/jar -pid 12345 -pname Bootstrap -o /home/report -f html -l 1

    ./devkit sys-mig -c mvn_analyse -cf /home/config.conf -d /home/mvn_project1 /home/mvn_project2 -o /home/report -l 1