Merge branch 'release/0.10' into develop
This commit is contained in:
commit
58142f1710
@ -317,9 +317,16 @@ namespace cryfs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Cli::_sanityChecks(const ProgramOptions &options) {
|
void Cli::_sanityChecks(const ProgramOptions &options) {
|
||||||
_checkDirAccessible(options.baseDir(), "base directory", ErrorCode::InaccessibleBaseDir);
|
_checkDirAccessible(bf::absolute(options.baseDir()), "base directory", ErrorCode::InaccessibleBaseDir);
|
||||||
|
|
||||||
|
if (!options.mountDirIsDriveLetter()) {
|
||||||
_checkDirAccessible(options.mountDir(), "mount directory", ErrorCode::InaccessibleMountDir);
|
_checkDirAccessible(options.mountDir(), "mount directory", ErrorCode::InaccessibleMountDir);
|
||||||
_checkMountdirDoesntContainBasedir(options);
|
_checkMountdirDoesntContainBasedir(options);
|
||||||
|
} else {
|
||||||
|
if (bf::exists(options.mountDir())) {
|
||||||
|
throw CryfsException("Drive " + options.mountDir().string() + " already exists.", ErrorCode::InaccessibleMountDir);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Cli::_checkDirAccessible(const bf::path &dir, const std::string &name, ErrorCode errorCode) {
|
void Cli::_checkDirAccessible(const bf::path &dir, const std::string &name, ErrorCode errorCode) {
|
||||||
|
@ -49,8 +49,8 @@ ProgramOptions Parser::parse(const vector<string> &supportedCiphers) const {
|
|||||||
if (!vm.count("mount-dir")) {
|
if (!vm.count("mount-dir")) {
|
||||||
_showHelpAndExit("Please specify a mount directory.", ErrorCode::InvalidArguments);
|
_showHelpAndExit("Please specify a mount directory.", ErrorCode::InvalidArguments);
|
||||||
}
|
}
|
||||||
bf::path baseDir = bf::absolute(vm["base-dir"].as<string>());
|
bf::path baseDir = vm["base-dir"].as<string>();
|
||||||
bf::path mountDir = bf::absolute(vm["mount-dir"].as<string>());
|
bf::path mountDir = vm["mount-dir"].as<string>();
|
||||||
optional<bf::path> configfile = none;
|
optional<bf::path> configfile = none;
|
||||||
if (vm.count("config")) {
|
if (vm.count("config")) {
|
||||||
configfile = bf::absolute(vm["config"].as<string>());
|
configfile = bf::absolute(vm["config"].as<string>());
|
||||||
|
@ -15,9 +15,19 @@ ProgramOptions::ProgramOptions(bf::path baseDir, bf::path mountDir, optional<bf:
|
|||||||
bool allowIntegrityViolations,
|
bool allowIntegrityViolations,
|
||||||
boost::optional<bool> missingBlockIsIntegrityViolation,
|
boost::optional<bool> missingBlockIsIntegrityViolation,
|
||||||
vector<string> fuseOptions)
|
vector<string> fuseOptions)
|
||||||
:_baseDir(std::move(baseDir)), _mountDir(std::move(mountDir)), _configFile(std::move(configFile)), _foreground(foreground), _allowFilesystemUpgrade(allowFilesystemUpgrade), _allowReplacedFilesystem(allowReplacedFilesystem), _allowIntegrityViolations(allowIntegrityViolations),
|
: _configFile(std::move(configFile)), _baseDir(bf::absolute(std::move(baseDir))), _mountDir(std::move(mountDir)),
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
_mountDirIsDriveLetter(_mountDir.has_root_path() && !_mountDir.has_root_directory() && !_mountDir.has_parent_path()),
|
||||||
|
#else
|
||||||
|
_mountDirIsDriveLetter(false),
|
||||||
|
#endif
|
||||||
|
_foreground(foreground),
|
||||||
|
_allowFilesystemUpgrade(allowFilesystemUpgrade), _allowReplacedFilesystem(allowReplacedFilesystem), _allowIntegrityViolations(allowIntegrityViolations),
|
||||||
_cipher(std::move(cipher)), _blocksizeBytes(std::move(blocksizeBytes)), _unmountAfterIdleMinutes(std::move(unmountAfterIdleMinutes)),
|
_cipher(std::move(cipher)), _blocksizeBytes(std::move(blocksizeBytes)), _unmountAfterIdleMinutes(std::move(unmountAfterIdleMinutes)),
|
||||||
_missingBlockIsIntegrityViolation(std::move(missingBlockIsIntegrityViolation)), _logFile(std::move(logFile)), _fuseOptions(std::move(fuseOptions)) {
|
_missingBlockIsIntegrityViolation(std::move(missingBlockIsIntegrityViolation)), _logFile(std::move(logFile)), _fuseOptions(std::move(fuseOptions)) {
|
||||||
|
if (!_mountDirIsDriveLetter) {
|
||||||
|
_mountDir = bf::absolute(std::move(_mountDir));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const bf::path &ProgramOptions::baseDir() const {
|
const bf::path &ProgramOptions::baseDir() const {
|
||||||
@ -28,6 +38,10 @@ const bf::path &ProgramOptions::mountDir() const {
|
|||||||
return _mountDir;
|
return _mountDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ProgramOptions::mountDirIsDriveLetter() const {
|
||||||
|
return _mountDirIsDriveLetter;
|
||||||
|
}
|
||||||
|
|
||||||
const optional<bf::path> &ProgramOptions::configFile() const {
|
const optional<bf::path> &ProgramOptions::configFile() const {
|
||||||
return _configFile;
|
return _configFile;
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ namespace cryfs {
|
|||||||
|
|
||||||
const boost::filesystem::path &baseDir() const;
|
const boost::filesystem::path &baseDir() const;
|
||||||
const boost::filesystem::path &mountDir() const;
|
const boost::filesystem::path &mountDir() const;
|
||||||
|
bool mountDirIsDriveLetter() const;
|
||||||
const boost::optional<boost::filesystem::path> &configFile() const;
|
const boost::optional<boost::filesystem::path> &configFile() const;
|
||||||
bool foreground() const;
|
bool foreground() const;
|
||||||
bool allowFilesystemUpgrade() const;
|
bool allowFilesystemUpgrade() const;
|
||||||
@ -38,9 +39,10 @@ namespace cryfs {
|
|||||||
const std::vector<std::string> &fuseOptions() const;
|
const std::vector<std::string> &fuseOptions() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
boost::filesystem::path _baseDir;
|
|
||||||
boost::filesystem::path _mountDir;
|
|
||||||
boost::optional<boost::filesystem::path> _configFile;
|
boost::optional<boost::filesystem::path> _configFile;
|
||||||
|
boost::filesystem::path _baseDir; // this is always absolute
|
||||||
|
boost::filesystem::path _mountDir; // this is absolute iff !_mountDirIsDriveLetter
|
||||||
|
bool _mountDirIsDriveLetter;
|
||||||
bool _foreground;
|
bool _foreground;
|
||||||
bool _allowFilesystemUpgrade;
|
bool _allowFilesystemUpgrade;
|
||||||
bool _allowReplacedFilesystem;
|
bool _allowReplacedFilesystem;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user