summaryrefslogtreecommitdiff
path: root/hscript/disk.cc
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2019-11-01 22:33:30 -0500
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2019-11-01 22:33:30 -0500
commit05cc72e4f79128ae8c228a638f50963ff9508a9f (patch)
treeb0bd0297506520deffdb954180d05928a7d4fee7 /hscript/disk.cc
parent810000aff2404c2e602217fdd8ed2a2448a48133 (diff)
downloadhorizon-05cc72e4f79128ae8c228a638f50963ff9508a9f.tar.gz
horizon-05cc72e4f79128ae8c228a638f50963ff9508a9f.tar.bz2
horizon-05cc72e4f79128ae8c228a638f50963ff9508a9f.tar.xz
horizon-05cc72e4f79128ae8c228a638f50963ff9508a9f.zip
hscript: Use enumeration for Filesystem::fstype
Diffstat (limited to 'hscript/disk.cc')
-rw-r--r--hscript/disk.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/hscript/disk.cc b/hscript/disk.cc
index 31143cc..91c766f 100644
--- a/hscript/disk.cc
+++ b/hscript/disk.cc
@@ -733,6 +733,7 @@ Key *Filesystem::parseFromData(const std::string &data, int lineno,
std::string::size_type sep = data.find(' ');
std::string device(data.substr(0, sep));
std::string fstype(data.substr(sep + 1));
+ FilesystemType type;
if(device.size() < 6 || device.compare(0, 5, "/dev/")) {
if(errors) *errors += 1;
@@ -753,7 +754,21 @@ Key *Filesystem::parseFromData(const std::string &data, int lineno,
return nullptr;
}
- return new Filesystem(lineno, device, fstype);
+ if(fstype == "ext2") {
+ type = Ext2;
+ } else if(fstype == "ext3") {
+ type = Ext3;
+ } else if(fstype == "ext4") {
+ type = Ext4;
+ } else if(fstype == "jfs") {
+ type = JFS;
+ } else if(fstype == "vfat") {
+ type = VFAT;
+ } else {
+ type = XFS;
+ }
+
+ return new Filesystem(lineno, device, type);
}
bool Filesystem::validate(ScriptOptions) const {