Revision: 184 http://rigsofrods.svn.sourceforge.net/rigsofrods/?rev=184&view=rev Author: rorthomas Date: 2009-04-19 22:53:13 +0000 (Sun, 19 Apr 2009)
Log Message: ----------- wsync usable :) only minors: added icon, improved usability Modified Paths: -------------- trunk/build/wsync/CMakeLists.txt trunk/build/wsync/include/wsync.h trunk/build/wsync/source/main.cpp trunk/build/wsync/source/wsync.cpp Added Paths: ----------- trunk/build/wsync/source/icon.rc trunk/build/wsync/source/resource.h trunk/build/wsync/source/update.ico Modified: trunk/build/wsync/CMakeLists.txt =================================================================== --- trunk/build/wsync/CMakeLists.txt 2009-04-16 10:43:15 UTC (rev 183) +++ trunk/build/wsync/CMakeLists.txt 2009-04-19 22:53:13 UTC (rev 184) @@ -17,7 +17,7 @@ # first compile the lib, then the console tool add_library(libwsync STATIC source/SHA1.cpp source/wsync.cpp include/wsync.h) -add_executable(wsync source/main) +add_executable(wsync source/main source/icon.rc) target_link_libraries(wsync libwsync) Modified: trunk/build/wsync/include/wsync.h =================================================================== --- trunk/build/wsync/include/wsync.h 2009-04-16 10:43:15 UTC (rev 183) +++ trunk/build/wsync/include/wsync.h 2009-04-19 22:53:13 UTC (rev 184) @@ -73,5 +73,6 @@ int ensurePathExist(boost::filesystem::path &path); std::string formatFilesize(boost::uintmax_t size); void progressOutput(float progress, float speed=-1); + void progressOutputShort(float progress); }; #endif Added: trunk/build/wsync/source/icon.rc =================================================================== --- trunk/build/wsync/source/icon.rc (rev 0) +++ trunk/build/wsync/source/icon.rc 2009-04-19 22:53:13 UTC (rev 184) @@ -0,0 +1,72 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +//#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +//#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +//#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// French (France) resources + +//#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +//#ifdef _WIN32 +//LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +//#pragma code_page(1252) +//#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_ICON1 ICON DISCARDABLE "update.ico" + +//#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +//1 TEXTINCLUDE DISCARDABLE +//BEGIN +// "resource.h\0" +//END + +//2 TEXTINCLUDE DISCARDABLE +//BEGIN +// "#include ""afxres.h""\r\n" +// "\0" +//END + +//3 TEXTINCLUDE DISCARDABLE +//BEGIN +// "\r\n" +// "\0" +//END + +//#endif // APSTUDIO_INVOKED + +//#endif // French (France) resources +///////////////////////////////////////////////////////////////////////////// + + + +//#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +//#endif // not APSTUDIO_INVOKED + Modified: trunk/build/wsync/source/main.cpp =================================================================== --- trunk/build/wsync/source/main.cpp 2009-04-16 10:43:15 UTC (rev 183) +++ trunk/build/wsync/source/main.cpp 2009-04-19 22:53:13 UTC (rev 184) @@ -11,6 +11,9 @@ printf(" * creates a new file index for the specified directory\n"); printf(" mode can be 'full' or 'not-delete'\n"); printf("\n"); + printf("wsync sync\n"); + printf(" * shortcut with predefined paths for RoR\n"); + printf("\n"); printf("wsync sync <local path> <remote server> <remote path>\n"); printf(" * syncs the specified directory with the server\n"); } @@ -39,6 +42,15 @@ string remote_path = string(argv[4]); WSync *w = new WSync(); w->sync(local_path, remote_server, remote_path); + } else if((argc == 2 && !strcmp(argv[1], "sync")) || (argc == 1) ) + { + // shortcut + string local_path = "."; + string remote_server = "wsync.rigsofrods.com"; + string remote_path = "/"; + WSync *w = new WSync(); + w->sync(local_path, remote_server, remote_path); +/* } else if(argc == 2 && !strcmp(argv[1], "test")) { std::vector< std::vector< std::string > > list; @@ -54,8 +66,10 @@ printf("'%s'\n", it2->c_str()); } } - +*/ + } else + { + usage(); } - usage(); return 0; } Added: trunk/build/wsync/source/resource.h =================================================================== --- trunk/build/wsync/source/resource.h (rev 0) +++ trunk/build/wsync/source/resource.h 2009-04-19 22:53:13 UTC (rev 184) @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by icon.rc +// +#define IDI_ICON1 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif Added: trunk/build/wsync/source/update.ico =================================================================== (Binary files differ) Property changes on: trunk/build/wsync/source/update.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/build/wsync/source/wsync.cpp =================================================================== --- trunk/build/wsync/source/wsync.cpp 2009-04-16 10:43:15 UTC (rev 183) +++ trunk/build/wsync/source/wsync.cpp 2009-04-19 22:53:13 UTC (rev 184) @@ -102,12 +102,29 @@ if(filesToDownload) printf("downloading %d files now (%s) ..\n", filesToDownload, formatFilesize(predDownloadSize).c_str()); - // do things now! + int changeCounter = 0, changeMax = changedFiles.size() + newFiles.size() + deletedFiles.size(); + // do things now! + if(newFiles.size()) + { + for(itf=newFiles.begin();itf!=newFiles.end();itf++, changeCounter++) + { + progressOutputShort(float(changeCounter)/float(changeMax)); + printf(" A %s (%s) ", itf->filename.c_str(), formatFilesize(itf->filesize).c_str()); + path localfile = localDir / itf->filename; + string url = "/" + remoteDir + "/" + itf->filename; + if(downloadFile(localfile, server, url, true)) + printf("\nunable to create file: %s\n", itf->filename.c_str()); + else + printf(" \n"); + } + } + if(changedFiles.size()) { - for(itf=changedFiles.begin();itf!=changedFiles.end();itf++) + for(itf=changedFiles.begin();itf!=changedFiles.end();itf++, changeCounter++) { - printf("U %s (%s) ", itf->filename.c_str(), formatFilesize(itf->filesize).c_str()); + progressOutputShort(float(changeCounter)/float(changeMax)); + printf(" U %s (%s) ", itf->filename.c_str(), formatFilesize(itf->filesize).c_str()); path localfile = localDir / itf->filename; string url = "/" + remoteDir + "/" + itf->filename; if(downloadFile(localfile, server, url, true)) @@ -119,9 +136,10 @@ if(deletedFiles.size() && !(modeNumber & WMO_NODELETE)) { - for(itf=deletedFiles.begin();itf!=deletedFiles.end();itf++) + progressOutputShort(float(changeCounter)/float(changeMax)); + for(itf=deletedFiles.begin();itf!=deletedFiles.end();itf++, changeCounter++) { - printf("D %s (%s)\n", itf->filename.c_str(), formatFilesize(itf->filesize).c_str()); + printf(" D %s (%s)\n", itf->filename.c_str(), formatFilesize(itf->filesize).c_str()); path localfile = localDir / itf->filename; try { @@ -134,20 +152,6 @@ } } } - - if(newFiles.size()) - { - for(itf=newFiles.begin();itf!=newFiles.end();itf++) - { - printf("A %s (%s) ", itf->filename.c_str(), formatFilesize(itf->filesize).c_str()); - path localfile = localDir / itf->filename; - string url = "/" + remoteDir + "/" + itf->filename; - if(downloadFile(localfile, server, url, true)) - printf("\nunable to create file: %s\n", itf->filename.c_str()); - else - printf(" \n"); - } - } printf("sync complete, downloaded %s\n", formatFilesize(downloadSize).c_str()); @@ -171,8 +175,11 @@ { vector<string> files; listFiles(path, files); - for(vector<string>::iterator it=files.begin(); it!=files.end(); it++) + printf("building local file index ..."); + int counter = 0, counterMax = files.size(); + for(vector<string>::iterator it=files.begin(); it!=files.end(); it++, counter++) { + progressOutput(float(counter)/float(counterMax)); // cut out root path string respath = *it; if(respath.substr(0, rootpath.string().size()) == rootpath.string()) @@ -198,6 +205,7 @@ Hashentry entry(resultHash, file_size(*it)); hashMap[respath] = entry; } + printf("done. \n"); if(writeFile) return saveHashMapToFile(outfilename, hashMap, mode); return 0; @@ -532,6 +540,10 @@ } } +void WSync::progressOutputShort(float progress) +{ + printf("% 3.0f%%|", progress * 100); +} int WSync::getTempFilename(path &tempfile) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Stay on top of everything new and different, both inside and around Java (TM) technology - register by April 22, and save $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. 300 plus technical and hands-on sessions. Register today. Use priority code J9JMT32. http://p.sf.net/sfu/p _______________________________________________ Rigsofrods-devel mailing list Rigsofrods-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rigsofrods-devel