VirtualBox

Ignore:
Timestamp:
Oct 21, 2010 11:41:49 AM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
66869
Message:

Guest Copy/VBoxManage+Main: Implemented first working "copyto" command (single file only, no progress), in development.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp

    r33294 r33301  
    8080                 "                            copyto <vmname>|<uuid>\n"
    8181                 "                            <source on host> <destination on guest>\n"
     82                 "                            --username <name> --password <password>\n"
    8283                 "                            [--recursive] [--verbose] [--flags <flags>]\n"
    8384#endif
     
    368369                    RTPrintf("Waiting for process to exit ...\n");
    369370
    370                 /* setup signal handling if cancelable */
     371                /* Setup signal handling if cancelable. */
    371372                ASSERT(progress);
    372373                bool fCanceledAlready = false;
     
    441442                    }
    442443
    443 #if 0
     444#if 1
    444445                    static int sent = 0;
    445446                    if (sent < 1)
     
    627628    Utf8Str Utf8Source(a->argv[1]);
    628629    Utf8Str Utf8Dest(a->argv[2]);
    629     uint32_t uFlags = 0;
     630    Utf8Str Utf8UserName;
     631    Utf8Str Utf8Password;
     632    uint32_t uFlags = CopyFileFlag_None;
    630633    bool fVerbose = false;
    631634    bool fCopyRecursive = false;
     
    635638    for (int i = 3; usageOK && i < a->argc; i++)
    636639    {
    637         if (!strcmp(a->argv[i], "--flags"))
     640        if (   !strcmp(a->argv[i], "--username")
     641            || !strcmp(a->argv[i], "--user"))
     642        {
     643            if (i + 1 >= a->argc)
     644                usageOK = false;
     645            else
     646            {
     647                Utf8UserName = a->argv[i + 1];
     648                ++i;
     649            }
     650        }
     651        else if (   !strcmp(a->argv[i], "--password")
     652                 || !strcmp(a->argv[i], "--pwd"))
     653        {
     654            if (i + 1 >= a->argc)
     655                usageOK = false;
     656            else
     657            {
     658                Utf8Password = a->argv[i + 1];
     659                ++i;
     660            }
     661        }
     662        else if (!strcmp(a->argv[i], "--flags"))
    638663        {
    639664            if (i + 1 >= a->argc)
     
    678703        return errorSyntax(USAGE_GUESTCONTROL,
    679704                           "No destination specified!");
     705
     706    if (Utf8UserName.isEmpty())
     707        return errorSyntax(USAGE_GUESTCONTROL,
     708                           "No user name specified!");
    680709
    681710    /* lookup VM. */
     
    716745            /* Do the copy. */
    717746            rc = guest->CopyToGuest(Bstr(Utf8Source).raw(), Bstr(Utf8Dest).raw(),
     747                                    Bstr(Utf8UserName).raw(), Bstr(Utf8Password).raw(),
    718748                                    uFlags, progress.asOutParam());
    719749            if (FAILED(rc))
     
    733763            else
    734764            {
    735                 /* setup signal handling if cancelable */
     765                /* Setup signal handling if cancelable. */
    736766                ASSERT(progress);
    737767                bool fCanceledAlready = false;
     
    751781                BOOL fCompleted = FALSE;
    752782                BOOL fCanceled = FALSE;
    753                 while (SUCCEEDED(progress->COMGETTER(Completed(&fCompleted))))
     783                while (   SUCCEEDED(progress->COMGETTER(Completed(&fCompleted)))
     784                       && !fCompleted)
    754785                {
    755786                    /* Process async cancelation */
Note: See TracChangeset for help on using the changeset viewer.

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