Commit Graph

449 Commits

Author SHA1 Message Date
Adriaan de Groot
d5c6a70442 [libcalamares] Use signed sizes 2022-02-07 11:22:13 +01:00
Adriaan de Groot
ffeab32403 [libcalamares] Apply coding style 2022-01-31 23:41:37 +01:00
Adriaan de Groot
80300e412c [libcalamares] When logging extra lines to warning or error, suppress label
Avoid logs like

23:29:57 [2]: void Config::setConfigurationMap(const QVariantMap&)
    WARNING: Configuration for *initialSwapChoice* is not one of the *userSwapChoices*
WARNING:    .. Choice "small" added.

where the label is duplicated.
2022-01-31 23:27:35 +01:00
Adriaan de Groot
bc2713ccbb [libcalamares] Add string functions for lstrip() and rstrip()-like 2021-12-08 14:08:37 +01:00
Adriaan de Groot
890c17cd71 [libcalamares] Expand error-logging when creating files 2021-12-06 14:46:26 +01:00
Adriaan de Groot
6ef7acc108 [libcalamares] Add minor tests for new readTargetFile 2021-12-06 14:46:26 +01:00
Adriaan de Groot
baf8297cc4 [libcalamares] Reading a file from target system 2021-12-06 14:46:26 +01:00
Adriaan de Groot
5a4e2b73ab [libcalamares][partition] Give RedactedName a convert-to-QString
- use hex-trailer
- while here, convert DebugRow to use a copy rather than a reference,
  to avoid dangling references when applied to temporaries
- convert *partition* module to use the RedactedNames
2021-11-16 15:22:04 +01:00
Adriaan de Groot
152b3c333b [libcalamares] Introduce redaction-of-names class for logging
- redacted names are stable inside of one run of Calamares
- random, private displays of a given string for a context

SEE #1593
2021-11-16 14:47:13 +01:00
Adriaan de Groot
7b3c4db8f0 [libcalamares] Redacted -> RedactedCommand
- For logging (shell) commands where a password might become visible, use
  RedactedCommand. Rename it to allow for other kinds of redaction, too.
2021-11-16 14:21:46 +01:00
Adriaan de Groot
5e6d292235 FIXUP 2021-11-05 16:31:47 +01:00
Adriaan de Groot
faf1d68d32 [libcalamares] Tidy up processing of process output
- force C locale on processes
- split trailing output if output per-line-processing is active
2021-11-05 16:26:45 +01:00
Adriaan de Groot
e5323ec487 [libcalamares] Expand Runner documentation
- document a bit more of the methods
- provide convenience method enableOutputProcessing() alongside
  an explicit setter; adjust tests to the changed API.
- add an executable() information method.
2021-11-03 12:20:36 +01:00
Adriaan de Groot
2088502e57 [libcalamares] Don't use QProcess directly outside of Runner 2021-11-02 23:46:26 +01:00
Adriaan de Groot
57c174c37f [libcalamares] Clean up QProcess includes 2021-11-02 23:46:26 +01:00
Adriaan de Groot
5c82cb32ab [libcalamares] Expand tests to show last-output-line 2021-11-02 23:20:22 +01:00
Adriaan de Groot
aa315c0696 [libcalamares] Handle last-output-line without newline 2021-11-02 22:58:41 +01:00
Adriaan de Groot
0a339a5402 [libcalamares] Test Runner output-processing 2021-11-02 22:55:41 +01:00
Adriaan de Groot
953b899f75 [libcalamares] Allow Runner instances to collect output 2021-11-02 22:50:13 +01:00
Adriaan de Groot
870009e815 [libcalamares] Replace runCommand internals by Runner 2021-11-02 22:27:33 +01:00
Adriaan de Groot
89824a9e0d [libcalamares] Fix up Runner (as a replacement for current system code) 2021-11-02 22:27:33 +01:00
Adriaan de Groot
24ca64deac [libcalamares] Chase moved redacted-logging 2021-11-02 22:27:33 +01:00
Adriaan de Groot
85debfc69b [libcalamares] Add Redacted logging
- this was an internal class for logging commands, let's lift
  it up to the Logger framework where it might be more generally
  useful (or not .. everything needs special-casing for actual
  redaction).
2021-11-02 22:27:33 +01:00
Adriaan de Groot
f0104af1c3 [libcalamares] Expand tests on Runner internals 2021-11-02 22:27:33 +01:00
Adriaan de Groot
e5fa58b890 [libcalamares] Add tests for relativeCangeDirectory() 2021-11-02 22:27:32 +01:00
Adriaan de Groot
0b943e801c [libcalamares] Begin implementing Runner
This copies a bunch of code from the System methods for running,
and then #if 0's them to get it to compile. Add some basic
directory-management.
2021-11-02 22:27:32 +01:00
Adriaan de Groot
b9dac6eef8 [libcalamares] Small step in implementation 2021-11-02 22:27:32 +01:00
Adriaan de Groot
2de09d4001 [libcalamares] Start refactor of running-a-process support
The background idea is that, while CalamaresUtils::System::runCommand()
is a useful general API, it is
- still missing flexibility
- lacking a way to process output from the command "as it happens"

Waiting until the process ends, and then reading all stdout, is
inconvenient for processes that produce a **lot** of output,
and also makes it impossible to report progress. One module
in calamares-extensions has its own run-a-process implementation
for reading output, and this branch aims to introduce something
similar into Calamares core.
2021-11-02 22:27:32 +01:00
dalto
5f55784137 Add getList function to Variant 2021-10-23 14:02:47 -05:00
Adriaan de Groot
8f65a644a9 [libcalamares] Rename cPointerSetter
This class doesn't really set a pointer -- it is a scoped assignment
through a pointer, which **can** set a value on destruction (when
it leaves scope). Rename it.

While here, extend the API so that it can do an assignment to the
underlying object **now**, while also doing a scoped assignment
later when it leaves scope. This makes some code a bit easier
to read ("in this scope, X is now <v> and then it becomes <v'>")
2021-09-22 11:29:52 +02:00
Adriaan de Groot
bba5b21873 [libcalamares] Remove cBoolSetter
This class was used only once, and is confusing because
the assignment happens always, but to the opposite value
as what was visible. It can be replaced with other
scoped assignment, instead.

Removes the tests for it, too.
2021-09-22 11:29:52 +02:00
Adriaan de Groot
9be9431970 [libcalamares] Give Logger::Once more flexibility 2021-09-22 01:41:28 +02:00
Adriaan de Groot
39915db988 [libcalamares] Reduce log spam when running commands 2021-09-22 00:58:31 +02:00
Adriaan de Groot
ada13c19fd [libcalamares] Simplify filling the entropy buffer 2021-09-21 12:02:26 +02:00
Adriaan de Groot
5f4e65bc77 [libcalamares] Code-format Retranslator, hide internal symbols 2021-09-07 12:35:37 +02:00
Adriaan de Groot
5e7746668e Merge branch 'calamares' into refactor-translation 2021-09-06 15:38:42 +02:00
Adriaan de Groot
1e05e7996b [libcalamares] Avoid cError + SubEntry
The combination of Error and SubEntry loses the indentation.
2021-08-24 12:32:48 +02:00
Adriaan de Groot
2f3062f4c2 [libcalamares] Fix typo in comment 2021-08-01 23:49:33 +02:00
Adriaan de Groot
559c53b09c [libcalamares]: stronger type for translation name
QString -> Id for translations in the external API, to avoid
accidentally converting a QLocale name (e.g. ca_ES) into a
Calamares translation name. This preserves special-cases
like ca@valencia and sr@latin.
2021-07-28 14:22:28 +02:00
Adriaan de Groot
a65723d4da [libcalamares] Extend cPointerSetter with initial-value
This is a convenience for "set <some variable> to <some value>
at end of scope".
2021-07-31 00:20:27 +02:00
Adriaan de Groot
954e8ee3f8 [libcalamares] warnings-- with a deduction guide 2021-07-26 15:18:21 +02:00
Adriaan de Groot
59f11e9b67 i18n: make retranslator more consistent
- Improve naming.
- Both lambda and slot versions call the code immediately.
2021-07-24 23:26:02 +02:00
Adriaan de Groot
613d076a60 i18n: re-do the whole Retranslator infrastructure
Just have **one** Retranslator object, and install it as event-filter
(this needs to be done manually on a top-level widget) and use
signals / slots to do the actual work, rather than filtering
in multiple places and doing our own mediocre version of binding-
signal-to-lambda.
2021-07-24 23:18:03 +02:00
Adriaan de Groot
f32671ebab libcalamares: remove declaration that was never implemented 2021-07-23 22:51:08 +02:00
Adriaan de Groot
56ecf01dea Merge branch 'pr-1667' into calamares
Allow user-selection of FS type

FIXES #1667
2021-07-05 12:31:58 +02:00
Adriaan de Groot
88be947f6c [libcalamares] Expand tests for Variant access
- document that getStringList() also handles strings as 1-element lists
2021-06-29 12:13:37 +02:00
Adriaan de Groot
432154e50a [libcalamares] Improve Once-logging
Sending a Once to a logger that isn't enabled should not "consume"
that Once; it's still available for a subsequent logger that **is**
enabled (useful if you're using more than one log-level in a function).
2021-06-18 16:10:13 +02:00
Adriaan de Groot
66f96e339c [libcalamares] Introduce cVerbose() convenience macro (like cDebug()) 2021-06-18 16:01:04 +02:00
Adriaan de Groot
ef436ac4d7 [libcalamares] add a convenience optional-setter for use with pointers 2021-06-18 13:49:08 +02:00
Adriaan de Groot
cf341c53fa Merge branch 'calamares' into improve-partition 2021-05-25 17:37:15 +02:00
Adriaan de Groot
b68e535131 [libcalamares] Log to file and stdout consistently
- The log **file** got every QDebug object, while stdout only
  got the ones of sufficient logging level. A CDebug object checks the
  logging level before writing anything -- so those already were
  consistent, but any qDebug() in the program (not cDebug()!) would
  reach the writing-function anyway, and so log to the file.
  Fix this weird inconsistency by checking log-level just once,
  for both writes.
2021-05-31 11:39:13 +02:00
Adriaan de Groot
716328cafb [libcalamares] Un-clog Logging
- Map QtMsgType -- used by qDebug() and qWarning() -- to levels used
  by Calamares in a consistent fashion.
- Drop unused log levels (INFO, EXTRA unused in any Calamares code).
2021-05-31 11:26:49 +02:00
Adriaan de Groot
df20aa9ddb Merge branch 'calamares' into improve-partition 2021-04-23 23:33:49 +02:00
Adriaan de Groot
bac1108781 Merge branch 'issue-1550' into calamares
FIXES #1550
2021-04-23 22:37:12 +02:00
Adriaan de Groot
7521be3c5f [libcalamares] Add find() to namedenumtable that takes a default value 2021-04-23 18:03:24 +02:00
Adriaan de Groot
0143aa5515 [libcalamares] Make the branding-loading messages follow same format as the others 2021-04-17 22:13:16 +02:00
Adriaan de Groot
bf7b41f548 [libcalamares] Document the Once class for logging 2021-03-29 15:31:41 +02:00
Adriaan de Groot
d4f28e863f [libcalamares] Allow rvalue Once to be used in logging 2021-03-29 15:23:55 +02:00
Adriaan de Groot
9c2a26bed5 [libcalamares] Apply coding style 2021-03-27 15:41:58 +01:00
Adriaan de Groot
9341a84820 [libcalamares] Make the RETRANSLATE macros more statement-line
Require a ; after RETRANSLATE macros. They are statement-like;
this makes it easier for some of them to be recognized by
clang-format and resolves some existing weird formatting.
2021-03-16 14:55:26 +01:00
Adriaan de Groot
a90f510b85 [libcalamares] Convenience for logging subentries
For methods that log a bunch of things, and which want to
consistently use SubEntry, but don't know when the **first**
log entry is within the method, Logger::Once can be used
to log one regular message (with function info) and the
rest are subentries.
2021-03-15 22:45:29 +01:00
Adriaan de Groot
72f67286a4 [libcalamares] Preserve type CDebug() if possible. 2021-03-15 21:41:27 +01:00
Adriaan de Groot
ea63f48c31 [libcalamares] Put the units in a nested namespace
- this makes it much easier to use the literal suffixes
  by using the namespace rather than individual operators.
2021-03-09 18:21:58 +01:00
Adriaan de Groot
e49f0cf3ba [libcalamares] Document NamedEnum in much more detail 2021-02-09 17:03:19 +01:00
Adriaan de Groot
38fa1d9567 [libcalamares] Distinguish logging raw, shared and unique pointers
- It shouldn't be necessary to explicitly .get() pointers for
  logging, and it's convenient to know when a pointer is smart.
  * no annotation means raw (e.g. @0x0)
  * S means shared
  * U means unique
2021-02-03 01:06:25 +01:00
Adriaan de Groot
eafb8149b3 [libcalamares] Test some degenerate truncation cases 2021-02-02 15:35:53 +01:00
Adriaan de Groot
7ab9c63903 [libcalamares] Extend test with some degenerate cases 2021-01-29 11:53:36 +01:00
Adriaan de Groot
5c402ffd66 [libcalamares] Truncate to a character count as well 2021-01-28 22:13:44 +01:00
Adriaan de Groot
1542bad224 [libcalamares] Truncate strings without trailing newline properly 2021-01-28 15:30:00 +01:00
Adriaan de Groot
8e3ed3c933 [libcalamares] Remove redundant variable, use NEWLINE instead of character-literal 2021-01-28 15:24:05 +01:00
Adriaan de Groot
3623e9aefc [libcalamares] Extend tests of string-truncation 2021-01-28 14:47:03 +01:00
Adriaan de Groot
319a720d1b [libcalamares Expand tests 2021-01-28 01:06:09 +01:00
Adriaan de Groot
b144d81979 [libcalamares] Fix up smart-string-truncation
- off-by-one when source ends with a newline
- lastNewLine was being calculated as a left-index into the string,
  then used as a count-from-right
2021-01-28 01:02:46 +01:00
Adriaan de Groot
3be360e433 [libcalamares] Add tests to string truncation
- check that basic manipulations succeed
- trailing-lines selection fails, though
2021-01-28 00:23:13 +01:00
Adriaan de Groot
8cc114bf2c [libcalamares] Move smart-string-truncation to library
Expand the API a little to support first-lines, last-lines,
and something of both. Use strong types to make the names
clear for each.
2021-01-27 23:51:03 +01:00
Adriaan de Groot
f0fd47eeb3 [libcalamares] Simplify logging-manipulators
Writing `Logger::NoQuote{}`` has annoyed me for a while, so
switch it to a constant, like SubEntry, so it looks more
like a regular manipulator object.
2021-01-26 00:13:10 +01:00
Adriaan de Groot
132ff59d9c [libcalamares] Make running commands less chatty
If there's no output, don't mention it; don't mention failure modes
if the command was successful.
2021-01-06 00:07:35 +01:00
Adriaan de Groot
f4133a97db [libcalamares] Make test a bit more verbose (before failing) 2020-11-30 15:38:17 +01:00
Adriaan de Groot
fa7d2bda16 [libcalamares] Misplaced space in a test-filename 2020-11-30 15:28:08 +01:00
Adriaan de Groot
b4aca7e188 [libcalamares] Tidy up documentation for System::runCommand
- Make explicit which one runs in the host, which one is selectable.
- Document *location* parameter in the selectable version.
- Tidy up alignment of apidox.
2020-11-11 14:03:23 +01:00
Adriaan de Groot
83b2b95381 [libcalamares] Reduce object churn
- we don't need to allocate a new translator each time the language changes
2020-11-05 00:09:23 +01:00
Adriaan de Groot
59255c7a57 Changes: apply coding style 2020-11-05 00:00:29 +01:00
Adriaan de Groot
b72eba8157 [libcalamares] Extend the Deleter-helper with "preserve"
Sometimes you want to keep the thing around after all.
2020-10-30 15:58:38 +01:00
Adriaan de Groot
7659dfdb9d [libcalamares] Expose a translations-loading function 2020-10-30 15:58:38 +01:00
Adriaan de Groot
ac6c9fae4a [libcalamares] Do not use moved-from object 2020-10-30 13:51:53 +01:00
Adriaan de Groot
98c7cec732 CMake: restore NOTREACHED, without the macro-mess
- gcc (up to at least version 10) is worse at recognizing that all
  cases have been handled, so it complains about all the switches
  that cover enum values.
2020-10-25 18:52:38 +01:00
Adriaan de Groot
2b9fa0f982 CMake: drop the NOTREACHED macro
- both clang and g++ support __builtin_unreachable(); (as Kevin
   Kofler pointed out) so we don't need the macro to do different things;
 - the compilers have gotten better at detecting unreachable code,
   so instead of inserting macros or fiddly bits, just drop them
   and the unreachable code they comment.
2020-10-25 12:49:49 +01:00
Adriaan de Groot
2f83d85e29 [libcalamares] Explain process failure in debug log a bit better 2020-10-12 23:19:15 +02:00
Adriaan de Groot
2878c474c5 Warnings-- (~T() override)
Change all the places that had
	virtual ~T() override
to the less redundant form without override.
2020-09-22 22:49:30 +02:00
Adriaan de Groot
2126be6d6d Warnings-- (~T() override)
Consistently use
	~T() override;
in class declarations (so no virtual in front, and avoid
warnings due to the missing override in back).
2020-09-22 22:40:52 +02:00
Adriaan de Groot
8b66009d59 [libcalamares] Warnings-- in tests (~T() override) 2020-09-22 22:37:29 +02:00
Adriaan de Groot
0cffac10c6 [libcalamares] Ignore more warnings for system header YAML 2020-09-22 22:37:29 +02:00
Adriaan de Groot
a2180936ef CI: apply coding style across the entire codebase again 2020-08-26 02:28:43 +02:00
Adriaan de Groot
1cd9b93a22 REUSE: Giant boilerplate cleanup
- point to main Calamares site in the 'part of' headers instead
  of to github (this is the "this file is part of Calamares"
  opening line for most files).
- remove boilerplate from all source files, CMake modules and completions,
  this is the 3-paragraph summary of the GPL-3.0-or-later, which has
  a meaning entirely covered by the SPDX tag.
2020-08-26 02:28:38 +02:00
Adriaan de Groot
2ac518d8b9 [libcalamares] Change in stringlist extraction also changes single-string 2020-08-18 16:44:56 +02:00
Adriaan de Groot
41e2de85b1 [libcalamares] Fix up test -- 'lam' isn't supposed to be in the loaded data 2020-08-18 16:43:18 +02:00
Adriaan de Groot
a5555c3f94
Merge pull request #1491 from asif-mahmud/calamares
[libcalamares] retrieving string list fix
2020-08-18 16:41:56 +02:00
Adriaan de Groot
e55def87e9 [libcalamares] Test for Variant methods
In advance of PR #1491, test loading and stringlist extraction.

- from code, extraction works "normally"
- for YAML data, the stringlist isn't actually a stringlist
2020-08-18 16:40:33 +02:00
Adriaan de Groot
117859082e [libcalamares] Merge Tests.h into Tests.cpp
- no real need for separate file in the utils/ tests
2020-08-18 16:40:33 +02:00
Asif Mahmud Shimon
3245d602db retrieving string list fix 2020-08-14 20:52:53 +06:00