diff options
author | Marc Laukien <marc@zeroc.com> | 2002-04-15 19:12:57 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2002-04-15 19:12:57 +0000 |
commit | 5f30d7093499c65b10a8458cf68cf9a585262236 (patch) | |
tree | b6ae5af4b1ac7ba89c383bdfd3cb8486fd44e737 /cpp/src/IcePatch/Server.cpp | |
parent | Added PrivateKeyException to the addKeyCert methods to ensure that the (diff) | |
download | ice-5f30d7093499c65b10a8458cf68cf9a585262236.tar.bz2 ice-5f30d7093499c65b10a8458cf68cf9a585262236.tar.xz ice-5f30d7093499c65b10a8458cf68cf9a585262236.zip |
added pw check to glacier
Diffstat (limited to 'cpp/src/IcePatch/Server.cpp')
-rw-r--r-- | cpp/src/IcePatch/Server.cpp | 410 |
1 files changed, 205 insertions, 205 deletions
diff --git a/cpp/src/IcePatch/Server.cpp b/cpp/src/IcePatch/Server.cpp index 931a7527d07..fadbf596b95 100644 --- a/cpp/src/IcePatch/Server.cpp +++ b/cpp/src/IcePatch/Server.cpp @@ -1,205 +1,205 @@ -// **********************************************************************
-//
-// Copyright (c) 2002
-// MutableRealms, Inc.
-// Huntsville, AL, USA
-//
-// All Rights Reserved
-//
-// **********************************************************************
-
-#include <Ice/Application.h>
-#include <IcePatch/FileLocator.h>
-#include <IcePatch/Util.h>
-
-using namespace std;
-using namespace Ice;
-using namespace IcePatch;
-
-namespace IcePatch
-{
-
-class Server : public Application
-{
-public:
-
- void usage();
- virtual int run(int, char*[]);
-
- static void removeOrphanedRecursive(const string&);
- static void updateRecursive(const string&);
-};
-
-};
-
-void
-IcePatch::Server::usage()
-{
- cerr << "Usage: " << appName() << " [options]\n";
- cerr <<
- "Options:\n"
- "-h, --help Show this message.\n"
- "-v, --version Display the Ice version.\n"
- ;
-}
-
-int
-IcePatch::Server::run(int argc, char* argv[])
-{
- try
- {
- for (int i = 1; i < argc; ++i)
- {
- if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0)
- {
- usage();
- return EXIT_SUCCESS;
- }
- else if (strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--version") == 0)
- {
- cout << ICE_STRING_VERSION << endl;
- return EXIT_SUCCESS;
- }
- else
- {
- cerr << appName() << ": unknown option `" << argv[i] << "'" << endl;
- usage();
- return EXIT_FAILURE;
- }
- }
-
- PropertiesPtr properties = communicator()->getProperties();
-
- //
- // Get the IcePatch endpoints.
- //
- const char* endpointsProperty = "IcePatch.Endpoints";
- string endpoints = properties->getProperty(endpointsProperty);
- if (endpoints.empty())
- {
- cerr << appName() << ": property `" << endpointsProperty << "' is not set" << endl;
- return EXIT_FAILURE;
- }
-
- //
- // Get the working directory and change to this directory.
- //
- const char* directoryProperty = "IcePatch.Directory";
- string directory = properties->getProperty(directoryProperty);
- if (!directory.empty())
- {
- changeDirectory(directory);
- }
-
- //
- // Remove orphaned MD5 and BZ2 files.
- // Create MD5 and BZ2 files.
- //
- removeOrphanedRecursive(".");
- updateRecursive(".");
-
- //
- // Create and initialize the object adapter and the file locator.
- //
- ObjectAdapterPtr adapter = communicator()->createObjectAdapterFromProperty("IcePatch", endpointsProperty);
- ServantLocatorPtr fileLocator = new FileLocator(adapter);
- adapter->addServantLocator(fileLocator, "IcePatch");
- adapter->activate();
-
- //
- // We're done, let's wait for shutdown.
- //
- communicator()->waitForShutdown();
- }
- catch (const FileAccessException& ex)
- {
- cerr << appName() << ": " << ex << ":\n" << ex.reason << endl;
- return EXIT_FAILURE;
- }
-
- return EXIT_SUCCESS;
-}
-
-void
-IcePatch::Server::removeOrphanedRecursive(const string& path)
-{
- assert(getFileInfo(path, true).type == FileTypeDirectory);
-
- StringSeq paths = readDirectory(path);
- StringSeq::const_iterator p;
- for (p = paths.begin(); p != paths.end(); ++p)
- {
- if (ignoreSuffix(*p))
- {
- pair<StringSeq::const_iterator, StringSeq::const_iterator> r =
- equal_range(paths.begin(), paths.end(), removeSuffix(*p));
- if (r.first == r.second)
- {
- cout << "removing orphaned file `" << *p << "'... " << flush;
- removeRecursive(*p);
- cout << "ok" << endl;
- }
- }
- else
- {
- if (getFileInfo(*p, true).type == FileTypeDirectory)
- {
- removeOrphanedRecursive(*p);
- }
- }
- }
-
- if (readDirectory(path).empty())
- {
- cout << "removing empty directory `" << *p << "'... " << flush;
- removeRecursive(path);
- cout << "ok" << endl;
- }
-}
-
-void
-IcePatch::Server::updateRecursive(const string& path)
-{
- if (ignoreSuffix(path))
- {
- return;
- }
-
- FileInfo info = getFileInfo(path, true);
-
- if (info.type == FileTypeDirectory)
- {
- StringSeq paths = readDirectory(path);
- StringSeq::const_iterator p;
- for (p = paths.begin(); p != paths.end(); ++p)
- {
- updateRecursive(*p);
- }
- }
- else if (info.type == FileTypeRegular)
- {
- FileInfo infoMD5 = getFileInfo(path + ".md5", false);
- if (infoMD5.type != FileTypeRegular || infoMD5.time < info.time)
- {
- cout << "creating .md5 file for `" << path << "'... " << flush;
- createMD5(path);
- cout << "ok" << endl;
- }
-
- FileInfo infoBZ2 = getFileInfo(path + ".bz2", false);
- if (infoBZ2.type != FileTypeRegular || infoBZ2.time < info.time)
- {
- cout << "creating .bz2 file for `" << path << "'... " << flush;
- createBZ2(path);
- cout << "ok" << endl;
- }
- }
-}
-
-int
-main(int argc, char* argv[])
-{
- addArgumentPrefix("IcePatch");
- Server app;
- return app.main(argc, argv);
-}
+// ********************************************************************** +// +// Copyright (c) 2002 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +#include <Ice/Application.h> +#include <IcePatch/FileLocator.h> +#include <IcePatch/Util.h> + +using namespace std; +using namespace Ice; +using namespace IcePatch; + +namespace IcePatch +{ + +class Server : public Application +{ +public: + + void usage(); + virtual int run(int, char*[]); + + static void removeOrphanedRecursive(const string&); + static void updateRecursive(const string&); +}; + +}; + +void +IcePatch::Server::usage() +{ + cerr << "Usage: " << appName() << " [options]\n"; + cerr << + "Options:\n" + "-h, --help Show this message.\n" + "-v, --version Display the Ice version.\n" + ; +} + +int +IcePatch::Server::run(int argc, char* argv[]) +{ + try + { + for (int i = 1; i < argc; ++i) + { + if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) + { + usage(); + return EXIT_SUCCESS; + } + else if (strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--version") == 0) + { + cout << ICE_STRING_VERSION << endl; + return EXIT_SUCCESS; + } + else + { + cerr << appName() << ": unknown option `" << argv[i] << "'" << endl; + usage(); + return EXIT_FAILURE; + } + } + + PropertiesPtr properties = communicator()->getProperties(); + + // + // Get the IcePatch endpoints. + // + const char* endpointsProperty = "IcePatch.Endpoints"; + string endpoints = properties->getProperty(endpointsProperty); + if (endpoints.empty()) + { + cerr << appName() << ": property `" << endpointsProperty << "' is not set" << endl; + return EXIT_FAILURE; + } + + // + // Get the working directory and change to this directory. + // + const char* directoryProperty = "IcePatch.Directory"; + string directory = properties->getProperty(directoryProperty); + if (!directory.empty()) + { + changeDirectory(directory); + } + + // + // Remove orphaned MD5 and BZ2 files. + // Create MD5 and BZ2 files. + // + removeOrphanedRecursive("."); + updateRecursive("."); + + // + // Create and initialize the object adapter and the file locator. + // + ObjectAdapterPtr adapter = communicator()->createObjectAdapterFromProperty("IcePatch", endpointsProperty); + ServantLocatorPtr fileLocator = new FileLocator(adapter); + adapter->addServantLocator(fileLocator, "IcePatch"); + adapter->activate(); + + // + // We're done, let's wait for shutdown. + // + communicator()->waitForShutdown(); + } + catch (const FileAccessException& ex) + { + cerr << appName() << ": " << ex << ":\n" << ex.reason << endl; + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} + +void +IcePatch::Server::removeOrphanedRecursive(const string& path) +{ + assert(getFileInfo(path, true).type == FileTypeDirectory); + + StringSeq paths = readDirectory(path); + StringSeq::const_iterator p; + for (p = paths.begin(); p != paths.end(); ++p) + { + if (ignoreSuffix(*p)) + { + pair<StringSeq::const_iterator, StringSeq::const_iterator> r = + equal_range(paths.begin(), paths.end(), removeSuffix(*p)); + if (r.first == r.second) + { + cout << "removing orphaned file `" << *p << "'... " << flush; + removeRecursive(*p); + cout << "ok" << endl; + } + } + else + { + if (getFileInfo(*p, true).type == FileTypeDirectory) + { + removeOrphanedRecursive(*p); + } + } + } + + if (readDirectory(path).empty()) + { + cout << "removing empty directory `" << *p << "'... " << flush; + removeRecursive(path); + cout << "ok" << endl; + } +} + +void +IcePatch::Server::updateRecursive(const string& path) +{ + if (ignoreSuffix(path)) + { + return; + } + + FileInfo info = getFileInfo(path, true); + + if (info.type == FileTypeDirectory) + { + StringSeq paths = readDirectory(path); + StringSeq::const_iterator p; + for (p = paths.begin(); p != paths.end(); ++p) + { + updateRecursive(*p); + } + } + else if (info.type == FileTypeRegular) + { + FileInfo infoMD5 = getFileInfo(path + ".md5", false); + if (infoMD5.type != FileTypeRegular || infoMD5.time < info.time) + { + cout << "creating .md5 file for `" << path << "'... " << flush; + createMD5(path); + cout << "ok" << endl; + } + + FileInfo infoBZ2 = getFileInfo(path + ".bz2", false); + if (infoBZ2.type != FileTypeRegular || infoBZ2.time < info.time) + { + cout << "creating .bz2 file for `" << path << "'... " << flush; + createBZ2(path); + cout << "ok" << endl; + } + } +} + +int +main(int argc, char* argv[]) +{ + addArgumentPrefix("IcePatch"); + Server app; + return app.main(argc, argv); +} |