Commit Graph

28 Commits

Author SHA1 Message Date
Adriaan de Groot
f076dd76ad [libcalamares] Rename YamlUtils.h
- Since we have the utils/ filesystem namespace, and use CalamaresUtils::
   as C++ namespace, simplify naming.
2019-04-29 06:14:21 -04:00
Adriaan de Groot
090aee9196 Modules: adjust to split-out utils/Variant.h
- Most modules only needed the variant support, not the "whole"
   CalamaresUtils header.
 - While here improve ordering of headers as well.
2019-04-29 06:14:21 -04:00
Adriaan de Groot
e072b76fea [shellprocess] [contextualprocess] Unneeded module.desc
- C++ modules should have a CMakeLists.txt which does the
   right thing, e.g. calamares_add_plugin() , and don't need
   a textual module.desc
2019-04-27 11:37:12 -04:00
Adriaan de Groot
123c774a47 Use new automoc options 2019-04-18 12:06:16 +02:00
Adriaan de Groot
c83395ff6d Reduce warnings for yaml-cpp
- Use only utils/YamlUtils.h to pull in yaml-cpp and supporting code.
 - When compiling with clang, turn off warnings that the system header
   for yaml-cpp would generate.
2019-04-18 12:06:09 +02:00
Adriaan de Groot
189e192c83 [shellprocess] Reduce warnings
- The old-style cast still causes a warning, but do the
   more idiomatic (void) rather then casting to (void*)
2019-04-11 12:29:53 +02:00
Adriaan de Groot
7515386cf8 CMake: clean up test setup
- Remove redundant searches for ECM and Qt::Test, move
   them to top-level.
2018-10-05 09:41:37 -04:00
Adriaan de Groot
dd8e53dc22 Copyright: update copyright lines on files touched in 2018
Contributions from:
  Adriaan de Groot <groot@kde.org>
  Gabriel Craciunescu <crazy@frugalware.org>
  AlmAck <gluca86@gmail.com>
  Andrius Štikonas <andrius@stikonas.eu>
  Caio Carvalho <caiojcarvalho@gmail.com>
  Raul Rodrigo Segura <raurodse@gmail.com>
2018-06-15 05:59:11 -04:00
Adriaan de Groot
d3e57e9c9f [shellprocess] Expand tests
These tests run (shell) commands as part of the test; this may be
a security problem, although I've tried to do things safely.
2018-05-23 13:49:23 -04:00
Adriaan de Groot
87b9c42158 [shellprocess] Don't crash test
- May need to create a JobQueue before doing anything internal
 - May need to create global settings
 - Chroot always needs rootMountPath internally
2018-05-23 10:01:31 -04:00
Adriaan de Groot
8b00a03423 [shellprocess] Test command-substitution 2018-05-23 09:29:43 -04:00
Adriaan de Groot
b5d900c1c6 [libcalamares] Allow a @@USER@@ replacement in commands
- Following example in preservefiles module, allow @@USER@@
   in commands (e.g. to do something specific in the home-dir
   of the new user).
2018-05-23 09:25:57 -04:00
Adriaan de Groot
f0ec6c02a3 [shellprocess] ECM has already been searched-for 2018-02-19 07:03:43 -05:00
Adriaan de Groot
3315df5df1 [modules] Use new convenience logging methods across the board 2018-02-13 11:07:12 +01:00
Adriaan de Groot
d27675d660 i18n: drop superfluous QObject* parent
These additional pointers were introduced for translations,
and needed their own tricks to get lupdate to recognize the
strings. Using QCoreApplication::translate() removes the
need to a QObject to provide context. Drop the now-unneeded
parameters.
2018-02-07 17:43:26 +01:00
Adriaan de Groot
c2aca1f5c6 [shellprocess] Implement timeout setting
- For both shellprocess and contextualprocess, add a top-level key
   "timeout" that defaults to 10 seconds (which it already did).
 - Allows setting "global" timeout for command-lists, while still
   allowing individual timeouts per-command.
 - Setting timeout per global variable in contextualprocess is not
   supported; that would restrict the possible space of comparisions,
   while not supporting a global setting timeout seems reasonable enough.
   Use instances if you need wildly variable timeouts and don't want to
   set them individually.
2018-01-29 22:08:12 +01:00
Adriaan de Groot
2da430fa36 [libcalamares] Allow CommandLine to have unset timeout
- Introduce enum for the appropriate constant
 - If the timeout isn't set, then defer to the timeout set
   on the commandlist when running the commands.
2018-01-29 21:25:18 +01:00
Adriaan de Groot
c641f5dec6 [libcalamares] Implement object-style command line
- handle command: and timeout: entries
 - test for setting the values
2018-01-29 21:08:42 +01:00
Adriaan de Groot
4917b5c778 [shellprocess] Add test for future feature
- proposed syntax for command+timeout configuration, both for single-
   entry and for lists.
 - test it already
2018-01-29 17:40:29 +01:00
Adriaan de Groot
ea179eaef4 [contextualprocess] Document command lists
- Show that a command list is also allowed, not just a single
   command. Refer to shellprocess for more documentation.
2018-01-29 17:10:56 +01:00
Adriaan de Groot
913690650f [libcalamares] Move CommandList into libcalamares
- Move CommandList so it can be used from more modules than
   just ShellProcess
 - Allow a CommandList to run itself. This centralizes
   code for executing one or more commands and simplifies
   the ShellProcess module.

Various small cleanups:
 - mention instance id in log message
 - code formatting / style
2018-01-15 06:52:55 -05:00
Adriaan de Groot
60f4dd7b3b [libcalamares] Improve explanation of failed processes. 2018-01-15 05:51:58 -05:00
Adriaan de Groot
8571fd800e [shellprocess] Make explicit that an error code has been ignored, by logging it. 2018-01-15 05:26:20 -05:00
Adriaan de Groot
e48767eaa6 [shellprocess] Make CommandList chroot-aware
This is prep-work for moving commandlist to libcalamares, where
it can be re-used by more modules.
2018-01-15 04:57:41 -05:00
Adriaan de Groot
8bd40fdcd5 [shellprocess] Warn when there's no script 2018-01-15 04:20:37 -05:00
Adriaan de Groot
fdb3fc1ef8 [shellprocess] Execute the command list 2018-01-12 10:38:40 -05:00
Adriaan de Groot
b7fb24837a [shellprocess] Improve CommandList
- Also allow a single string instead of a list
 - Add count() method to CommandList
 - Drop over-engineering, add more logging
 - Expand tests with some more examples
2018-01-12 10:38:01 -05:00
Adriaan de Groot
5f8fb655c4 [shellprocess] Stub of a shell process module.
This is basically dummyprocess, except with an expanded configuration
interface so you can run 1 or more shell commands in the live
or target system with a suitable configuration file and instance
of shellprocess in settings.conf.

It can replace downstream modules that implement their own
process modules with a command, by an instance of shellprocess.
2018-01-12 10:33:51 -05:00