VirtualBox

Ignore:
Timestamp:
Dec 7, 2018 9:28:53 AM (6 years ago)
Author:
vboxsync
Message:

Fixed options handling to reduce flags and re-use the list option contextually. Also manually parse -? for another common usage() trigger and trigger usage() if noargs are supplied on command line

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ImageMounter/vboximg-mount/vboximg-mount.cpp

    r75977 r76043  
    175175     int32_t       size;                    /** Size of accessible disk region, starting at offset, default = offset 0 */
    176176     uint32_t      cHddImageDiffMax;        /** Max number of differencing images (snapshots) to apply to image */
    177      uint32_t      fListMedia;              /** Flag to list virtual disks of all known VMs */
    178      uint32_t      fListMediaBrief;         /** Flag to list virtual disks of all known VMs */
     177     uint32_t      fListMediaLong;          /** Flag to list virtual disks of all known VMs */
     178     uint32_t      fList;                   /** Flag to list virtual disks of all known VMs */
    179179     uint32_t      fListParts;              /** Flag to summarily list partitions associated with pszImage */
    180180     uint32_t      fAllowRoot;              /** Flag to allow root to access this FUSE FS */
     
    187187
    188188static struct fuse_opt vboximgOptDefs[] = {
    189     OPTION("-l",              fListMediaBrief,   1),
    190     OPTION("-L",              fListMedia,        1),
    191     OPTION("-t",              fListParts,        1),
     189    OPTION("-l",              fList,             1),
     190    OPTION("--list",          fList,             1),
    192191    OPTION("--root",          fAllowRoot,        1),
    193192    OPTION("--vm=%s",         pszVm,             0),
     
    215214    RTPrintf("usage: vboximg-mount [options] <mountpoint>\n\n"
    216215        "vboximg-mount options:\n\n"
    217         "    [ -l ]                                     List virtual disk media (brief version)\n"
    218         "    [ -L ]                                     List virtual disk media (long version)\n"
    219         "    [ -t ]                                     List partition table (requires -i or --image option)\n"
     216        "    [ { -l | --list } ]                        If a disk image is specified [-i, --image], list partition table\n"
     217        "                                               for the specified disk image.\n"
     218        "\n"
     219        "                                               If no image is specified on the command line, list registered VMs\n"
     220        "                                               and their disk media.  If a verbose flag is specified,\n"
     221        "                                               VM and media list will be long format, including snapshot images\n"
     222        "                                               and component locations (e.g. paths).\n"
    220223        "\n"
    221224        "    [ { -i | --image= } <UUID | name | path> ] Virtual Box disk image to use\n"
     
    226229        "                                               (Can't use with -p or --partition options)\n"
    227230        "\n"
    228         "    [ -s | --size=<bytes>]                     Sets size of mounted disk from disk start or from\n"
     231        "    [ -s | --size=<bytes> ]                    Sets size of mounted disk from disk start or from\n"
    229232        "                                               offset, if specified. (Can't use with\n"
    230233        "                                               -p or --partition options)\n"
     
    235238        "                                               (0 = Apply no diffs, default = Apply all diffs)\n"
    236239        "\n"
    237         "    [ --rw]                                    Make image writeable (default = readonly)\n"
    238         "    [ --root]                                  Same as -o allow_root\n"
     240        "    [ --rw ]                                   Make image writeable (default = readonly)\n"
     241        "    [ --root ]                                 Same as -o allow_root\n"
    239242        "\n"
    240243        "    [ --vm < Path | UUID >]                    VM UUID (limit media list to specific VM)\n"
     
    243246        "    -o opt[,opt...]                            FUSE mount options\n"
    244247        "    -h                                         Display short usage info showing only the above\n"
     248        "    -?                                         Display short usage info showing only the above\n"
    245249        "    --help                                     Display long usage info (including FUSE opts)\n\n"
    246250    );
     
    696700
    697701{
    698 
    699702    (void) offset;
    700703    (void) pInfo;
     
    794797                if (ancestorNumber == 0)
    795798                {
    796                     if (!g_vboximgOpts.fListMediaBrief)
     799                    if (g_vboximgOpts.fVerbose)
    797800                    {
    798801                        RTPrintf("   -----------------------\n");
     
    812815                else
    813816                {
    814                     if (!g_vboximgOpts.fListMediaBrief)
     817                    if (g_vboximgOpts.fVerbose)
    815818                    {
    816819                        RTPrintf("     Diff %d:\n", ancestorNumber);
     
    861864                    || RTStrNCmp((const char *)pMachineName.raw(), g_vboximgOpts.pszVm, MAX_UUID_LEN) == 0)
    862865                {
    863                     if (!g_vboximgOpts.fListMediaBrief)
     866                    if (g_vboximgOpts.fVerbose)
    864867                    {
    865868                        RTPrintf("------------------------------------------------------\n");
     
    12621265    if (rc == -1)
    12631266        return RTMsgErrorExitFailure("Couldn't parse fuse options, rc=%Rrc\n", rc);
    1264     if (g_vboximgOpts.fBriefUsage)
     1267
     1268    if (argc < 2 || RTStrCmp(argv[1], "-?" ) == 0 || g_vboximgOpts.fBriefUsage)
    12651269    {
    12661270        briefUsage();
     
    13021306        RTPrintf("vboximg: VirtualBox XPCOM object created\n");
    13031307
    1304     if (g_vboximgOpts.fListMedia || g_vboximgOpts.fListMediaBrief)
     1308    if (g_vboximgOpts.fList && g_vboximgOpts.pszImage == NULL)
    13051309    {
    13061310        listVMs(pVirtualBox);
     
    13081312    }
    13091313
    1310 
    1311     if (g_vboximgOpts.pszImage == NULL)
    1312     {
    1313         RTMsgErrorExitFailure("To list partitions, must also specify --i or --image option\n");
    1314         return 0;
    1315     }
    13161314    ComPtr<IMedium> pBaseImageMedium = NULL;
    13171315    char    *pszFormat;
     
    14861484    g_cbEntireVDisk  = VDGetSize(g_pVDisk, 0 /* base */);
    14871485
    1488     if (g_vboximgOpts.fListParts)
     1486    if (g_vboximgOpts.fList)
    14891487    {
    14901488        if (g_pVDisk == NULL)
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette