[partition] Add convenience methods to FstabEntry
- Add something like a constructor - Add validity checking
This commit is contained in:
parent
594618f2cc
commit
f1c1d07dca
@ -1,6 +1,7 @@
|
|||||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||||
*
|
*
|
||||||
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
|
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
|
||||||
|
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||||
*
|
*
|
||||||
* Calamares is free software: you can redistribute it and/or modify
|
* Calamares is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -29,6 +30,18 @@ struct FstabEntry
|
|||||||
QString options;
|
QString options;
|
||||||
int dump;
|
int dump;
|
||||||
int pass;
|
int pass;
|
||||||
|
|
||||||
|
/// Does this entry make sense and is it complete?
|
||||||
|
bool isValid() const; // implemented in Partutils.cpp
|
||||||
|
|
||||||
|
/** @brief Create an entry from a live of /etc/fstab
|
||||||
|
*
|
||||||
|
* Splits the given string (which ought to follow the format
|
||||||
|
* of /etc/fstab) and returns a corresponding Fstab entry.
|
||||||
|
* If the string isn't valid (e.g. comment-line, or broken
|
||||||
|
* fstab entry) then the entry that is returned is invalid.
|
||||||
|
*/
|
||||||
|
FstabEntry fromEtcFstab( const QString& ); // implemented in Partutils.cpp
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef QList< FstabEntry > FstabEntryList;
|
typedef QList< FstabEntry > FstabEntryList;
|
||||||
|
@ -372,3 +372,31 @@ isEfiBootable( const Partition* candidate )
|
|||||||
}
|
}
|
||||||
|
|
||||||
} // nmamespace PartUtils
|
} // nmamespace PartUtils
|
||||||
|
|
||||||
|
/* Implementation of methods for FstabEntry, from OsproberEntry.h */
|
||||||
|
|
||||||
|
bool
|
||||||
|
FstabEntry::isValid() const
|
||||||
|
{
|
||||||
|
return !partitionNode.isEmpty() && !mountPoint.isEmpty() && !fsType.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
FstabEntry
|
||||||
|
FstabEntry::fromEtcFstab( const QString& rawLine )
|
||||||
|
{
|
||||||
|
QString line = rawLine.simplified();
|
||||||
|
if ( line.startsWith( '#' ) )
|
||||||
|
return FstabEntry{ QString(), QString(), QString(), QString(), 0, 0 };
|
||||||
|
|
||||||
|
QStringList splitLine = line.split( ' ' );
|
||||||
|
if ( splitLine.length() != 6 )
|
||||||
|
return FstabEntry{ QString(), QString(), QString(), QString(), 0, 0 };
|
||||||
|
|
||||||
|
return FstabEntry{ splitLine.at( 0 ), // path, or UUID, or LABEL, etc.
|
||||||
|
splitLine.at( 1 ), // mount point
|
||||||
|
splitLine.at( 2 ), // fs type
|
||||||
|
splitLine.at( 3 ), // options
|
||||||
|
splitLine.at( 4 ).toInt(), //dump
|
||||||
|
splitLine.at( 5 ).toInt() //pass
|
||||||
|
};
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user