2015-10-29 10:47:14 +01:00
|
|
|
#pragma once
|
|
|
|
#ifndef MESSMER_CRYFS_CLI_H
|
|
|
|
#define MESSMER_CRYFS_CLI_H
|
|
|
|
|
|
|
|
#include "program_options/ProgramOptions.h"
|
|
|
|
#include "config/CryConfigFile.h"
|
|
|
|
#include <boost/filesystem/path.hpp>
|
2015-10-30 18:28:33 +01:00
|
|
|
#include <messmer/cpp-utils/tempfile/TempFile.h>
|
2015-10-29 10:47:14 +01:00
|
|
|
|
|
|
|
namespace cryfs {
|
|
|
|
class Cli final {
|
|
|
|
public:
|
|
|
|
int main(int argc, char *argv[]);
|
|
|
|
|
|
|
|
private:
|
|
|
|
static void _runFilesystem(const program_options::ProgramOptions &options);
|
|
|
|
static CryConfigFile _loadOrCreateConfig(const program_options::ProgramOptions &options);
|
|
|
|
static boost::filesystem::path _determineConfigFile(const program_options::ProgramOptions &options);
|
|
|
|
static std::string _askPassword();
|
|
|
|
static bool _checkPassword(const std::string &password);
|
|
|
|
static void _showVersion();
|
2015-10-29 15:52:49 +01:00
|
|
|
static void _initLogfile(const program_options::ProgramOptions &options);
|
2015-10-29 20:17:52 +01:00
|
|
|
static void _sanityChecks(const program_options::ProgramOptions &options);
|
2015-10-30 17:23:08 +01:00
|
|
|
static void _checkMountdirDoesntContainBasedir(const program_options::ProgramOptions &options);
|
|
|
|
static bool _pathContains(const boost::filesystem::path &parent, const boost::filesystem::path &child);
|
2015-10-30 22:01:42 +01:00
|
|
|
static void _checkDirAccessible(const boost::filesystem::path &dir, const std::string &name);
|
|
|
|
static std::shared_ptr<cpputils::TempFile> _checkDirWriteable(const boost::filesystem::path &dir, const std::string &name);
|
|
|
|
static void _checkDirReadable(const boost::filesystem::path &dir, std::shared_ptr<cpputils::TempFile> tempfile, const std::string &name);
|
2015-10-29 10:47:14 +01:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|