summaryrefslogtreecommitdiff
path: root/cpp/src/IcePatch2/Client.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2019-10-29 14:11:27 -0400
committerJoe George <joe@zeroc.com>2021-02-01 16:46:20 -0500
commit9f22d436c536c18df0e3c434162048490c80191f (patch)
treeda5257cb9435bcdbe3614e4f758e36244cac5ed0 /cpp/src/IcePatch2/Client.cpp
parentFixed doxygen warnings and updated configs. (diff)
downloadice-9f22d436c536c18df0e3c434162048490c80191f.tar.bz2
ice-9f22d436c536c18df0e3c434162048490c80191f.tar.xz
ice-9f22d436c536c18df0e3c434162048490c80191f.zip
Remove IcePatch2 (#602)
Removed IcePatch2 and the corresponding distrib and patching features in IceGrid and IceGridGUI.
Diffstat (limited to 'cpp/src/IcePatch2/Client.cpp')
-rw-r--r--cpp/src/IcePatch2/Client.cpp383
1 files changed, 0 insertions, 383 deletions
diff --git a/cpp/src/IcePatch2/Client.cpp b/cpp/src/IcePatch2/Client.cpp
deleted file mode 100644
index dc9b1cbc838..00000000000
--- a/cpp/src/IcePatch2/Client.cpp
+++ /dev/null
@@ -1,383 +0,0 @@
-//
-// Copyright (c) ZeroC, Inc. All rights reserved.
-//
-
-#include <IceUtil/Options.h>
-#include <IceUtil/StringUtil.h>
-#include <Ice/Ice.h>
-#include <Ice/ConsoleUtil.h>
-#include <IcePatch2Lib/Util.h>
-#include <IcePatch2/ClientUtil.h>
-
-#ifdef _WIN32
-# include <conio.h>
-#else
-# include <fcntl.h>
-# include <termios.h>
-#endif
-
-using namespace std;
-using namespace IceInternal;
-
-class TextPatcherFeedback : public IcePatch2::PatcherFeedback
-{
-public:
-
- TextPatcherFeedback() :
- _pressAnyKeyMessage(false)
- {
-#ifndef _WIN32
- tcgetattr(0, &_savedTerm);
- _savedFlags = fcntl(0, F_GETFL);
- _block = true;
-#endif
- }
-
- virtual ~TextPatcherFeedback()
- {
-#ifndef _WIN32
- tcsetattr(0, TCSANOW, &_savedTerm);
- fcntl(0, F_SETFL, _savedFlags);
-#endif
- }
-
- virtual bool
- noFileSummary(const string& reason)
- {
- consoleOut << "Cannot load file summary:\n" << reason << endl;
- string answer;
- do
- {
- consoleOut << "Do a thorough patch? (yes/no)" << endl;
- cin >> answer;
- answer = IceUtilInternal::toLower(answer);
- if(answer == "no")
- {
- return false;
- }
- }
- while(answer != "yes");
- return true;
- }
-
- virtual bool
- checksumStart()
- {
- if(!_pressAnyKeyMessage)
- {
- consoleOut << "[Press any key to abort]" << endl;
- _pressAnyKeyMessage = true;
- }
-
- return !keyPressed();
- }
-
- virtual bool
- checksumProgress(const string& path)
- {
- consoleOut << "Calculating checksum for " << IcePatch2Internal::getBasename(path) << endl;
- return !keyPressed();
- }
-
- virtual bool
- checksumEnd()
- {
- return !keyPressed();
- }
-
- virtual bool
- fileListStart()
- {
- if(!_pressAnyKeyMessage)
- {
- consoleOut << "[Press any key to abort]" << endl;
- _pressAnyKeyMessage = true;
- }
-
- _lastProgress = "0%";
- consoleOut << "Getting list of files to patch: " << _lastProgress << flush;
- return !keyPressed();
- }
-
- virtual bool
- fileListProgress(Ice::Int percent)
- {
- for(unsigned int i = 0; i < _lastProgress.size(); ++i)
- {
- consoleOut << '\b';
- }
- ostringstream s;
- s << percent << '%';
- _lastProgress = s.str();
- consoleOut << _lastProgress << flush;
- return !keyPressed();
- }
-
- virtual bool
- fileListEnd()
- {
- consoleOut << endl;
- return !keyPressed();
- }
-
- virtual bool
- patchStart(const string& path, Ice::Long size, Ice::Long totalProgress, Ice::Long totalSize)
- {
- if(!_pressAnyKeyMessage)
- {
- consoleOut << "[Press any key to abort]" << endl;
- _pressAnyKeyMessage = true;
- }
-
- ostringstream s;
- s << "0/" << size << " (" << totalProgress << '/' << totalSize << ')';
- _lastProgress = s.str();
- consoleOut << IcePatch2Internal::getBasename(path) << ' ' << _lastProgress << flush;
- return !keyPressed();
- }
-
- virtual bool
- patchProgress(Ice::Long progress, Ice::Long size, Ice::Long totalProgress, Ice::Long totalSize)
- {
- for(unsigned int i = 0; i < _lastProgress.size(); ++i)
- {
- consoleOut << '\b';
- }
- ostringstream s;
- s << progress << '/' << size << " (" << totalProgress << '/' << totalSize << ')';
- _lastProgress = s.str();
- consoleOut << _lastProgress << flush;
- return !keyPressed();
- }
-
- virtual bool
- patchEnd()
- {
- consoleOut << endl;
- return !keyPressed();
- }
-
-private:
-
-#ifdef _WIN32
-
- bool
- keyPressed()
- {
- bool pressed = false;
- while(_kbhit())
- {
- pressed = true;
- _getch();
- }
- if(pressed)
- {
- pressed = confirmAbort();
- }
- return pressed;
- }
-
-#else
-
- bool
- keyPressed()
- {
- if(_block)
- {
- termios term;
- memcpy(&term, &_savedTerm, sizeof(termios));
- term.c_lflag &= static_cast<tcflag_t>(~(ECHO | ICANON));
- term.c_cc[VTIME] = 0;
- term.c_cc[VMIN] = 1;
- tcsetattr(0, TCSANOW, &term);
-
- int flags = _savedFlags;
- flags |= O_NONBLOCK;
- fcntl(0, F_SETFL, flags);
-
- _block = false;
- }
-
- bool pressed = false;
- char c;
- while(read(0, &c, 1) > 0)
- {
- pressed = true;
- }
- if(pressed)
- {
- pressed = confirmAbort();
- }
- return pressed;
- }
-
- termios _savedTerm;
- int _savedFlags;
- bool _block;
-
-#endif
-
- bool
- confirmAbort()
- {
-#ifndef _WIN32
- if(!_block)
- {
- tcsetattr(0, TCSANOW, &_savedTerm);
- fcntl(0, F_SETFL, _savedFlags);
- _block = true;
- }
-#endif
- string answer;
- do
- {
- consoleOut << "\nConfirm abort? (Y/N)" << endl;
- cin >> answer;
- answer = IceUtilInternal::toLower(answer);
- if(answer == "n")
- {
- return false;
- }
- }
- while(answer != "y");
- return true;
- }
-
- string _lastProgress;
- bool _pressAnyKeyMessage;
-};
-
-int run(const Ice::StringSeq&);
-
-Ice::CommunicatorPtr communicator;
-
-void
-destroyCommunicator(int)
-{
- communicator->destroy();
-}
-
-int
-#ifdef _WIN32
-wmain(int argc, wchar_t* argv[])
-#else
-main(int argc, char* argv[])
-#endif
-{
- int status = 0;
-
- try
- {
- Ice::CtrlCHandler ctrlCHandler;
- Ice::CommunicatorHolder ich(argc, argv);
- communicator = ich.communicator();
-
- ctrlCHandler.setCallback(&destroyCommunicator);
-
- status = run(Ice::argsToStringSeq(argc, argv));
- }
- catch(const std::exception& ex)
- {
- consoleErr << ex.what() << endl;
- status = 1;
- }
-
- return status;
-}
-
-void
-usage(const string& appName)
-{
- string options =
- "Options:\n"
- "-h, --help Show this message.\n"
- "-v, --version Display the Ice version.\n"
- "-t, --thorough Recalculate all checksums.";
-
- consoleErr << "Usage: " << appName << " [options] [DIR]" << endl;
- consoleErr << options << endl;
-}
-
-int
-run(const Ice::StringSeq& args)
-{
- Ice::PropertiesPtr properties = communicator->getProperties();
-
- IceUtilInternal::Options opts;
- opts.addOpt("h", "help");
- opts.addOpt("v", "version");
- opts.addOpt("t", "thorough");
-
- vector<string> props;
- try
- {
- props = opts.parse(args);
- }
- catch(const IceUtilInternal::BadOptException& e)
- {
- consoleErr << e.reason << endl;
- usage(args[0]);
- return 1;
- }
-
- if(opts.isSet("help"))
- {
- usage(args[0]);
- return 0;
- }
- if(opts.isSet("version"))
- {
- consoleOut << ICE_STRING_VERSION << endl;
- return 0;
- }
- if(opts.isSet("thorough"))
- {
- properties->setProperty("IcePatch2Client.Thorough", "1");
- }
-
- if(props.size() > 1)
- {
- consoleErr << args[0] << ": too many arguments" << endl;
- usage(args[0]);
- return 1;
- }
- if(props.size() == 1)
- {
- properties->setProperty("IcePatch2Client.Directory", IcePatch2Internal::simplify(props[0]));
- }
-
- bool aborted = false;
-
- try
- {
- IcePatch2::PatcherFeedbackPtr feedback = new TextPatcherFeedback;
- IcePatch2::PatcherPtr patcher = IcePatch2::PatcherFactory::create(communicator, feedback);
-
- aborted = !patcher->prepare();
-
- if(!aborted)
- {
- aborted = !patcher->patch("");
- }
-
- if(!aborted)
- {
- patcher->finish();
- }
- }
- catch(const exception& ex)
- {
- consoleErr << args[0] << ": " << ex.what() << endl;
- return 1;
- }
-
- if(aborted)
- {
- consoleOut << "\n[Aborted]" << endl;
- return 1;
- }
- else
- {
- return 0;
- }
-}