70 Commits (752399ca6b7d8421901e978abb31a36c3fee72ff)

Author SHA1 Message Date
Adriaan de Groot 752399ca6b [libcalamares] Error out on empty command
- an empty command isn't going to work (although it might successfully
  run chroot or env in the target system, that's not useful)
- while here, move variable declarations closer to their use.
6 years ago
Adriaan de Groot 88c75fb5dc [libcalamares] Simplify program-arguments creation 6 years ago
Adriaan de Groot f89951716e [libcalamares] Add mode to createTargetFile()
- Unconditionally **not** overwriting the target file isn't an option:
  writing hostname, for instance, expects that to be done even
  if `/etc/hostname` already exists on the target filesystem.
7 years ago
Adriaan de Groot 1bb43e06e2 Merge branch 'master' into kpmcore-manager 7 years ago
Adriaan de Groot 2d7398161d [libcalamares] More detail for createTargetFile()
- Return a result-object with statrus information and the path
   which was previously used (empty for "failures").
7 years ago
Adriaan de Groot e72ecaafd3 Merge branch 'kpmcore-manager'
Introduces a "partitioning service" into libcalamares,
shuffles a bunch of things into it, tries to help out
with settling the system between partitioning actions.
7 years ago
Adriaan de Groot 240fe2a564 [libcalamares] Add convenience createTargetParentDirs() 7 years ago
Adriaan de Groot e65969d587 [libcalamares] Re-do createTargetDirs()
- Drop the basedirs idea, replace return with just bool
 - Use QDir::mkpath, with some extra validation
 - Test it a bit
7 years ago
Adriaan de Groot b502d78984 [libcalamares] Fix warning message
- "create" was when this function was used elsewhere
7 years ago
Adriaan de Groot 31878dd43b [libcalamares] Avoid double / between root and path in targetPath() 7 years ago
Adriaan de Groot 95936549e2 [libcalamares] Add a createTargetBasedirs()
- Used to ensure that the directories leading up to a given path
   exist. Implementation is incomplete and broken for now.
 - While here, avoid removing an empty pathname in removeTargetFile()
   (the empty pathname indicates a broken configuration).
7 years ago
Adriaan de Groot bf882cec1d [machineid] Migrate removeFile() to libcalamares
- Becomes removeTargetFile()
7 years ago
Adriaan de Groot 9ef04192db [libcalamares] Simplify returns in targetPath() 7 years ago
Adriaan de Groot f6d89354a1 Merge branch 'master' into kpmcore-manager 7 years ago
Adriaan de Groot 6f73151786 [libcalamares] Reduce warnings
- Although milliseconds::count() is long long, we pass it to
   a Qt interface that only takes int; let's assume we have
   only a 32-bit count, since a timeout of 4 billion milliseconds
   is roughly 46 days, which we'll just call "no timeout".
7 years ago
Adriaan de Groot 312865cdd9 [libcalamares] Fix build on FreeBSD 7 years ago
Adriaan de Groot b8a74657f4 [libcalamares] Apply current coding style to libcalamares/utils/
- String.cpp needs special handling since part of it should
   remain unchanged, the formatting is "special" there.
7 years ago
Adriaan de Groot cac07c1472 [libcalamares] Use std::chrono::seconds for timeouts
- Distinguish just-an-int from seconds all across the API
7 years ago
Adriaan de Groot abd7ce2886 Merge branch 'master' into strictly-typed-timeout 7 years ago
Adriaan de Groot 76ce0e4f2b [libcalamares] Don't crash when creating System object
- In tests, a System object might be created without first
   setting up a JobQueue. In that case, there's no instance,
   so no GS to insert into. Avoid crash here.
7 years ago
Adriaan de Groot 1a85435372 [libcalamares] Get target path relative to host / 7 years ago
Adriaan de Groot b697461497 [libcalamares] Add System::createTargetFile()
- Calamares may need to create files in the target system;
   provide a convenient API for doing so.
 - This is mostly intended for small files with constant contents.
7 years ago
Adriaan de Groot 91644b4ba2 [libcalamares] Partially fix implementation of timeout
- Adjust most call sites to use std::chrono::duration,
 - Call to QProcess::waitForFinished() needs work, since
   that takes milliseconds.
7 years ago
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).
7 years ago
Adriaan de Groot 4f221b41d1 [libcalamares] Close stdin on process jobs
- This avoids processes that wait on stdin, and e.g. improves
   reaction to having just "cat" (no file) in a command, or
   a package manager that asks for input.
7 years ago
Adriaan de Groot 7be33b8196 [libcalamares] runCommand doesn't need queue or settings
- JobQueue is only needed to get global settings, which are needed
   when running in the target; for host commands, allow running
   without a queue.
 - Settings is needed for the value of debugsettings; assume if
   there's no settings object, that we're in a test and should
   print debugging information.
7 years ago
Adriaan de Groot 07a59bd09c [libcalamares] All commands with workingDirectory failed
- This is the same as EFAIL: a block is indented as if it's a multi-
   line else block. This isn't Python though, and the return always
   applies.
 - Add the necessary braces.
 - Apparently noone uses this code path (until ProcessJob was re-
   factored to do so).
7 years ago
Adriaan de Groot d7f5134121 [libcalamares] Be more verbose in error situations
- runCommand can return NoWorkingDirectory in multiple places,
   make sure the log contains a more specific reason.
7 years ago
Adriaan de Groot 92d03c2cf7 [libcalamares] Introduce enum class for special process exit values
- Replace magic numbers like -3 with named enum values
   (NoWorkingDirectory, for -3).
 - Downside is big-ugly static_casts, but that's what you get
   for having an int as return value for processes.
7 years ago
Adriaan de Groot 329bd36929 [libcalamares] Sanitize logging 7 years ago
Adriaan de Groot aaeea16871 [libcalamares] Make logging more consistent 7 years ago
Adriaan de Groot 00a5baa3d9 [libcalamares] Improve process logging
- Don't insert a space before the output of a process
 - To do this, suppress space and quoting on the output, and to do
   that move the labeling-output for warnings and errors into
   the constructor (so that an idiomatic .nospace() does the right thing).
8 years ago
Adriaan de Groot b5c3fc8cf6 [libcalamares] Improve process logging
- Log output on crash
 - If debugging is on (-d) then also log output on success

FIXES #925
8 years ago
Adriaan de Groot 73a5e0bbcd [libcalamares] Fix up debugging
Using plain cLog() is weird, it doesn't attach a debugging level
so it seems like it's level 0, beyond-critical.
9 years ago
Adriaan de Groot cf02f7aab5 [libcalamares] Avoid nullptr crashes
- The Python testmodule script can end up calling in to System
   methods (via System::instance()). This is unusual, and the
   System instance has not been created at that point.
   Now, create an instance and warn about it.
9 years ago
Adriaan de Groot 874514a4e4 i18n: drop orphaned #undefs (thanks Kevin Kofler) 9 years ago
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.
9 years ago
Adriaan de Groot f954496acf i18n: avoid translation tricks, use QCoreApplication::translate
Instead of using tr and some macro hacks to get lupdate to
recognize the translation, instead use QCoreApplication::translate()
which takes its own context for translation.
9 years ago
Adriaan de Groot 9a9c6da6db i18n: try to trick Transifex into recognizing these strings 9 years ago
Adriaan de Groot 60f4dd7b3b [libcalamares] Improve explanation of failed processes. 9 years ago
Adriaan de Groot 4ff1a0d5ea [libcalamares] another convenience for running commands
Back targetEnvCommand() with a more general runCommand()
that takes an argument selecting the location to run
the command in. This allows us also to use the same
API for running processes in the host during install,
as we do for running them in the target system.

One reason for this change is wanting to run (user-specified)
commands and independently from the global dontChroot setting,
run those commands in the live system or the target.

This changes the ABI of the DLL, since targetEnvCommand()
is no longer exported. Plugins will need to be recompiled.

 - refactor targetEnvCommand() into more general runCommand().
 - While here, allow host system commands to run even if
   there is no global storage.
 - provide convenience accessors for ProcessResult members
 - Move explanation of process errors out of ProcessJob
   - Move from ProcessJob to ProcessResult, so it can be
     reused outside of ProcessJob (e.g. from ShellProcessJob).
   - Add some convenience functions, too.
9 years ago
Adriaan de Groot 762ad54344 Documentation: change http links to GitHub to https 9 years ago
Adriaan de Groot 8a053f3c9b [libcalamares] Allow retrieving chroot mode from system (as well as settings) 9 years ago
Adriaan de Groot 9d31380980 [libcalamares] Refactor target-environment calls
- Add a more general targetEnvCommand() that returns both
   error code and process output.
 - Change existing targetEnvCall() and targetEnvOutput()
   to use general form while discarding some data.
9 years ago
Adriaan de Groot 1f3f6111f7 [libcalamares] Log output from failed commands 9 years ago
Adriaan de Groot 7a7e2b16cb [libcalamares] Some extra system-information functions 9 years ago
Adriaan de Groot 9693d7a5bd Memory: clean up interface used to get memory (RAM) size 9 years ago
Adriaan de Groot 13807ceabf Licensing: add self
- to all the files I've touched recently
 - to (very incomplete) AUTHORS list

Licensing: add license info to top-level CMakeLists.txt
9 years ago
Adriaan de Groot 6d880b5631 Replace memory-size detection.
- drop use of dmidecode to determine exact physical memory size
 - use sysinfo() to find memory size (assumes linux 2.3.48 or later)
9 years ago
Adriaan de Groot 106f18e074 Log process output of failed commands
FIXES #612
9 years ago