VirtualBox

Changeset 99266 in vbox


Ignore:
Timestamp:
Apr 3, 2023 3:56:00 PM (22 months ago)
Author:
vboxsync
Message:

Guest Control/VBoxManage: Added a "--total" option to the "fsinfo|df" command, to show a grand total of all disk sizes (like df does). bugref:10414

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/manual/en_US/man_VBoxManage-guestcontrol.xml

    r99264 r99266  
    270270      <arg>--human-readable</arg>
    271271      <arg>--quiet</arg>
     272      <arg>--total</arg>
    272273      <arg>--username=<replaceable>username</replaceable></arg>
    273274      <arg>--verbose</arg>
     
    813814          <listitem><para>
    814815              Shows the disk sizes in a human readable form.
     816            </para>
     817          </listitem>
     818        </varlistentry>
     819        <varlistentry>
     820          <term><option>--total</option></term>
     821          <listitem><para>
     822              Produces a grand total of all disk sizes.
    815823            </para>
    816824          </listitem>
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp

    r99264 r99266  
    23892389    AssertPtrReturn(pCtx, RTEXITCODE_FAILURE);
    23902390
     2391    /*
     2392     * Parse arguments.
     2393     */
     2394    enum GCTLCMD_FSINFO_OPT
     2395    {
     2396        GCTLCMD_FSINFO_OPT_TOTAL = 1000
     2397    };
     2398
    23912399    static const RTGETOPTDEF s_aOptions[] =
    23922400    {
    23932401        GCTLCMD_COMMON_OPTION_DEFS()
    2394         { "--human-readable",           'h',                RTGETOPT_REQ_NOTHING }
     2402        { "--human-readable",           'h',                            RTGETOPT_REQ_NOTHING },
     2403        { "--total",                    GCTLCMD_FSINFO_OPT_TOTAL,       RTGETOPT_REQ_NOTHING }
    23952404    };
    23962405
     
    24012410
    24022411    bool fHumanReadable = false;
     2412    bool fShowTotal = false;
    24032413
    24042414    while (  (ch = RTGetOpt(&GetState, &ValueUnion)) != 0
     
    24122422            case 'h':
    24132423                fHumanReadable = true;
     2424                break;
     2425
     2426            case GCTLCMD_FSINFO_OPT_TOTAL:
     2427                fShowTotal = true;
    24142428                break;
    24152429
     
    24392453             cwPathSpacing, "",
    24402454             GuestCtrl::tr("Path"));
     2455
     2456    uint64_t cbTotalSize = 0;
     2457    uint64_t cbTotalFree = 0;
    24412458
    24422459    while (ch == VINF_GETOPT_NOT_OPTION)
     
    24772494                         ValueUnion.psz);                     /* Path */
    24782495            }
     2496
     2497            if (fShowTotal)
     2498            {
     2499                cbTotalSize += u64;
     2500                cbTotalFree += u64_2;
     2501            }
     2502
    24792503            RTPrintf("\n");
    24802504        }
     
    24822506        /* Next path. */
    24832507        ch = RTGetOpt(&GetState, &ValueUnion);
     2508    }
     2509
     2510    if (fShowTotal)
     2511    {
     2512        if (fHumanReadable)
     2513        {
     2514            RTPrintf("%-*s%*Rhcb%*Rhcb%*Rhcb%*s%s",
     2515                     cwFileSys, "total",
     2516                     cwSizeTotal, cbTotalSize,                /* Total */
     2517                     cwSizeUsed,  cbTotalSize - cbTotalFree,  /* Used */
     2518                     cwSizeAvail, cbTotalFree,                /* Available */
     2519                     cwPathSpacing, "",
     2520                     "-");                                    /* Path */
     2521        }
     2522        else
     2523        {
     2524            RTPrintf("%-*s%*RU64%*RU64%*RU64%*s%s",
     2525                     cwFileSys, "total",                      /* Filesystem */
     2526                     cwSizeTotal, cbTotalSize,                /* Total */
     2527                     cwSizeUsed,  cbTotalSize - cbTotalFree,  /* Used */
     2528                     cwSizeAvail, cbTotalFree,                /* Available */
     2529                     cwPathSpacing, "",
     2530                     "-");                                    /* Path */
     2531        }
     2532        RTPrintf("\n");
    24842533    }
    24852534
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