Commit Graph

32 Commits

Author SHA1 Message Date
Adriaan de Groot
08537823ae [libcalamares] Special-case for not-for-dash-o options
- The unpackfs module uses this to --bind-mount things
   without options.
2019-06-21 10:45:29 +02:00
Adriaan de Groot
ba7259d9ee [partition] Use TemporaryMount support class
- While here, fix up compile warning
 - add -R to umount for good measure
2019-06-20 14:49:44 +02:00
Adriaan de Groot
dd0adeb3bb [libcalamares] Add a RAII mounter
- mount on creation, unmount on destruction
2019-06-20 14:34:08 +02:00
Adriaan de Groot
2b4ffb2bd3 [libcalamares] Polish coding-style
- don't break after return type in declarations
 - apply same to partition service
2019-06-20 14:30:49 +02:00
Adriaan de Groot
e6b55a1f70 [libcalamares] Code-formatting Sync.* 2019-06-20 13:53:02 +02:00
Adriaan de Groot
e59b3e8bf5 [libcalamares] Add unmount helper function 2019-06-20 13:52:36 +02:00
Adriaan de Groot
add90e873b [libcalamares] Provide overload of runCommand()
- Most of the time the working dir and stdin are not important,
   you just want to run a command in the host, so simplify that
   by providing a suitable overload.
 - Use that overload from the partition service (for mount and sync).
2019-06-20 11:52:51 +02:00
Adriaan de Groot
93eb712824 [libcalamares] After mount, sync to make sure things are settled 2019-06-20 11:38:08 +02:00
Adriaan de Groot
d08325d3d0 [libcalamares] Move mount to the partition service
- Move mount() out of CalamaresUtils::System and into
   the partitioning service.
 - Adjust PythonJobApi (only consumer of that service).
2019-06-20 11:35:46 +02:00
Adriaan de Groot
2c399d4494 [libcalamares] Add settle / sync support method 2019-06-19 12:14:49 +02:00
Adriaan de Groot
5e352c6771 [libcalamares] Mark KPM support API as such
- Some of these classes are only compiled in when KPMcore is found.
2019-06-19 09:07:04 +02:00
Adriaan de Groot
2cffe2ec1a [libcalamares] Move debugging to more useful spot
- Count the KPMManagers as they are created
2019-06-15 12:51:31 +02:00
Adriaan de Groot
d0d017f5fe [libcalamares] Add convenience backend() to KPMManager 2019-06-13 23:39:06 +02:00
Adriaan de Groot
a01539b664 [libcalamares] Fix memory ownership of KPMManager
- The InternalManager object should have at most one living
   instance at a time.
 - getInternal() hands out shared_ptr<>s to the one living instance,
   or creates a new one.
 - The creation of a new InternalManager shouldn't count as a reference
   to it, and it mustn't be deleted after the shared_ptr<>s have done
   their work.
 - So static shared_ptr<InternalManager> was the wrong choice,
   since that leads to double deletes.
 - While here, be a little more chatty when loading KPMCore.
2019-06-13 23:38:50 +02:00
Adriaan de Groot
1674c81e9c [libcalamares] Add query for kpmcore status 2019-06-13 23:38:50 +02:00
Adriaan de Groot
7adbc8cda6 [libcalamares] Add KPMCore manager
- This handles cleaning up KPMCore on exit
2019-06-13 23:38:50 +02:00
Adriaan de Groot
8eb04a082e [libcalamares] Move FS-related code to partition service
- only moves one function right now, providing user-visible
   name for filesystem name.
2019-06-13 14:55:43 +02:00
Adriaan de Groot
a7a3c4f2d8 [libcalamares] Unused include 2019-06-13 14:51:13 +02:00
Adriaan de Groot
93742a8efe [libcalamares] Reformat new code in partition service 2019-06-13 14:47:44 +02:00
Adriaan de Groot
4b3bb54320 [libcalamares] Move partition-finding into libcalamares
- Moved from KPMHelpers to the partition service
 - The is-partition and find-partition methods that make sense
   in general, are moved to libcalamares.
2019-06-13 14:41:33 +02:00
Adriaan de Groot
ca9f21d805 [libcalamares] Refortmat the partition service 2019-06-13 12:35:32 +02:00
Adriaan de Groot
8885611ae3 [libcalamares] Fix build with non-namespaced KPMCore types 2019-06-13 12:27:21 +02:00
Adriaan de Groot
d8dc512f45 [libcalamares] Move PartitionIterator to partition service.
- Starting to centralize utility code for partitioning into
   libcalamares instead of scattered and weirdly shared between
   modules.
 - This particular commit breaks compiling the modules, though.
2019-06-13 12:12:47 +02:00
Adriaan de Groot
34ffc7a20a [libcalamares] Consistent namespace usage in partition service
- The sub-directories under libcalamares (e.g. Utils, ..)
   all live in namespace CalamaresUtils (well, except for Logger).
   The services (e.g. subdirs other than utils/) live in their
   own nested namespace, so partitioning should go into
   CalamaresUtils::Partition for consistency.
2019-05-14 05:52:58 -04:00
Adriaan de Groot
10ba468748 [libcalamares] Avoid warnings / errors on both gcc and clang
- Clang 8 can detect that there is no need for a return if all
   previous paths already return. GCC 8 does not. Clang warns if
   the unreachable return is there, GCC errors out if it isn't.
 - Introduce a hack NOTREACHED that comments-out on Clang, and
   marks as unreachable (but still present) on GCC.
 - This might go away with an [[unreachable]] annotation or
   similar.
2019-05-14 05:29:18 -04:00
Adriaan de Groot
6db09f0679 [libcalamares] Handle all SizeUnit cases inside switch
- Although None will be filtered out already by unitsComparable(),
   include it in the switch to avoid a warning .. then we can
   drop the post-switch return since the switch covers all possible
   values of the enum.
2019-05-13 13:54:09 +02:00
Adriaan de Groot
90975b62bf [libcalamares] Tidy PartitionSize
- Use unitsComparable where applicable
 - Use SizeUnit instead of unit_t -- since this is a template
   specialization, we have the more meaningful type name to
   use, instead of the generic one.
2019-05-13 13:44:30 +02:00
Adriaan de Groot
72e1a36752 [libcalamares] Update partition service tests
- Use long so that 2GiB fits in the values
 - Document special case of 0[KMG]iB
2019-05-13 13:38:30 +02:00
Adriaan de Groot
7a368dc1d7 [libcalamares] Add tests for the partitioning service 2019-05-13 13:33:38 +02:00
Adriaan de Groot
93a68c3d5f [libcalamares] Add convenience method to check for unit-comparability
- Not all kinds of units are comparable. Introduce a method
   in PartitionSize to check for comparability (this could
   also be a free method, but seems more tidy here because it
   is specifically about comparing in the context of partition sizes).
2019-05-13 13:32:14 +02:00
Adriaan de Groot
859e95432e [partition] Handle all enum values in the switch 2019-05-13 12:23:19 +02:00
Arnaud Ferraris
4937668b5b [libcalamares] Add generic PartitionSize class
Using PartUtils::PartSize as reference, this commit creates a new
PartitionSize class in libcalamares, which will then be used in every
module needing such a class.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:30:33 +02:00