summaryrefslogtreecommitdiffstats
path: root/Options.h
diff options
context:
space:
mode:
Diffstat (limited to 'Options.h')
-rw-r--r--Options.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/Options.h b/Options.h
new file mode 100644
index 0000000..a813fa4
--- /dev/null
+++ b/Options.h
@@ -0,0 +1,42 @@
+#ifndef OPTIONS_H
+#define OPTIONS_H
+
+#include <iostream>
+#include <string>
+#include <sstream>
+#include <fstream>
+#include <vector>
+#include <unistd.h>
+
+#include "Cryptor.h"
+
+#define OPTIONS_FILE ".compassoptions"
+
+class Options {
+public:
+ Options();
+ virtual ~Options();
+
+ PasswordSpec getPasswordSpec();
+ void checkString(std::string str);
+ void parseArgv(int start, int argc, char* argv[]);
+
+ // Options
+ std::string user;
+ std::string pass;
+ std::string rh; // remote host
+ std::string pt; // TCP port
+ std::string dr; // directory
+ int cn; // credential number
+ int ml; // max length
+ bool ns; // no special chars
+ bool nc; // no caps
+ bool nn; // no numeric chars
+ bool pp; // print password (don't use clipboard)
+ bool cc; // preserve clipboard (don't clean)
+
+private:
+ std::vector<std::string> loadOptionsFile(int start, int argc, char* argv[]);
+};
+
+#endif // OPTIONS_H