Commit Graph

95 Commits

Author SHA1 Message Date
Debarshi Ray ab76cbca67 Move the code for Fedora support into its own file
This will reduce the size of the src/pkg/utils/utils.go file and make it
easier to specify which part of the code base is maintained by whom.

https://github.com/containers/toolbox/pull/1639
2025-05-06 02:07:17 +02:00
Debarshi Ray f9ebd5195b Move the code for Arch Linux support into its own file
This will reduce the size of the src/pkg/utils/utils.go file and make it
easier to specify which part of the code base is maintained by whom.

https://github.com/containers/toolbox/pull/1639
2025-05-06 01:56:01 +02:00
Debarshi Ray 2956ecacb4 cmd, pkg/utils: Split out the code to get the initialization stamp path
This will prevent any silly bug in getting the initialization stamp path
from breaking the communication protocol between the 'enter' or 'run'
commands on the host and the Toolbx container's entry point process.

https://github.com/containers/toolbox/pull/1633
2025-05-01 00:13:48 +02:00
Debarshi Ray 9989ffac14 cmd/root, pkg/utils: Use errors.Is() instead of os.IsNotExist()
The os.IsNotExist() function [1] predates the introduction of the
errors.Is() function [2] in Go 1.13 [3].  From Go >= 1.16, the
documentation explicitly recommends the use of errors.Is() instead of
os.IsNotExist() [4].

The Go implementation of Toolbx never used any Go older than 1.13 [5],
and currently it requires Go >= 1.21 [6].  So, there's no reason not to
use the more modern and recommended alternative.

[1] https://pkg.go.dev/os#IsNotExist

[2] https://pkg.go.dev/errors#Is

[3] https://go.dev/blog/go1.13-errors

[4] Go commit b641f0dcf48aa748
    https://github.com/golang/go/commit/b641f0dcf48aa748
    https://github.com/golang/go/issues/41122

[5] Commit d857471aa2
    https://github.com/containers/toolbox/commit/d857471aa2f233e5
    https://github.com/containers/toolbox/pull/318

[6] Commit 82e85bac9f
    https://github.com/containers/toolbox/commit/82e85bac9f5e69a5
    https://github.com/containers/toolbox/pull/1614

https://github.com/containers/toolbox/pull/1629
2025-04-28 13:39:49 +02:00
Debarshi Ray ec286bb186 pkg/utils: Optimize getting the runtime directory
The runtime directory is needed a few times during the course of
commonly used Toolbx commands.  It's used at start-up for all commands
except 'completion' and 'init-container' to synchronize the invocation
of 'podman system migrate'.  The entry point (ie., 'init-container')
uses it to read the generated Container Device Interface specification
and create the initialization stamp file.  The 'enter' and 'run'
commands use it to write the CDI specification and twice to detect the
creation of the initialization stamp file.

Since the runtime directory is always the same within a process, there's
no need to repeatedly go through all the steps of parsing the user and
group IDs, creating the directory, setting its ownership, and logging
the name of directory.  Once the directory is successfully created, it's
path can be cached and returned for subsequent use.

In case an error occurred while setting up the runtime directory,
subsequent attempts to get it will go through all the steps again.  This
doesn't matter much in practice because toolbox(1) can't continue in the
absence of a working runtime directory.

https://github.com/containers/toolbox/pull/1624
2025-04-11 22:10:53 +02:00
Debarshi Ray b524f4cebd pkg/utils: Update fallback release to 40 for non-fedora hosts
Fedora 38 reached End of Life on 21st May 2024:
https://docs.fedoraproject.org/en-US/releases/eol/

https://bugzilla.redhat.com/show_bug.cgi?id=2316312
https://github.com/containers/toolbox/pull/1561
2024-10-03 22:10:26 +02:00
Debarshi Ray ca8e62ecf2 pkg/utils, test/system: Test podman(1) invocations forwarded to the host
The test suite uses its own separate local container/storage store to
isolate itself from the default store, so that the tests' interactions
with containers and images don't affect anything else.  This is done by
using the CONTAINERS_STORAGE_CONF environment variable [1] to specify a
separate storage.conf(5) file [2].

Therefore, when running the test suite, the CONTAINERS_STORAGE_CONF
environment variable must be preserved when forwarding toolbox(1)
invocations inside containers to the host.  Otherwise, the initial
toolbox(1) invocation on the host and the forwarded invocation running
on the host won't use the same local container/storage store.

This problem only impacts test cases that cover toolbox(1) code paths
that invoke podman(1).

[1] https://docs.podman.io/en/latest/markdown/podman.1.html

[2] https://manpages.debian.org/testing/containers-storage/containers-storage.conf.5.en.html

https://github.com/containers/toolbox/issues/957
https://github.com/containers/toolbox/pull/1052
2024-09-09 15:20:57 +02:00
Ondřej Míchal 62fcc093e7 pkg/utils, test/system: Retain errors without -v when forwarding to host
https://github.com/containers/toolbox/issues/957
https://github.com/containers/toolbox/pull/1052
2024-09-03 16:41:29 +02:00
Debarshi Ray d7a95ea659 pkg/utils: Style fix
The convention in Go is to use mixedCaps (ie., camel case) rather than
underscores (ie., snake case) to write multiword names.

Fallout from 25b647d635

[1] https://go.dev/doc/effective_go

https://github.com/containers/toolbox/pull/1485
2024-05-08 08:07:34 +02:00
Debarshi Ray 4c04505881 pkg/utils: Style fix
Fallout from 25b647d635

https://github.com/containers/toolbox/pull/1485
2024-05-08 08:07:28 +02:00
Debarshi Ray 27878880e6 Update copyright notices
https://github.com/containers/toolbox/pull/1462
2024-02-29 23:31:51 +01:00
Dominique Polek e270078680 pkg/utils, test/system: Preserve the xterm version
XTerm injects its version into the process running inside it through the
XTERM_VERSION environment variable [1].  This is used by programs like
Neovim to detect the terminal features supported by xterm [2,3,4].

The XTERM_VERSION environment variable is not meant to be set by the
shell's start-up scripts, but directly by xterm, and hence needs to be
preserved across the host operating system and Toolbx container.

[1] https://invisible-island.net/xterm/manpage/xterm.html

[2] Neovim commit 3d8e0594e495c42d
    https://github.com/neovim/neovim/commit/3d8e0594e495c42d

[3] Neovim commit 16300d02c7fbe953
    https://github.com/neovim/neovim/commit/16300d02c7fbe953

[4] Neovim commit ab7da4c53138768f
    https://github.com/neovim/neovim/commit/ab7da4c53138768f
    https://github.com/neovim/neovim/issues/8644

https://github.com/containers/toolbox/issues/1449

Signed-off-by: Dominique Polek <dominique.polek@mailbox.org>
2024-02-27 15:56:09 +01:00
Dominique Polek 11f3802f8d pkg/utils, test/system: Preserve the Konsole version
Konsole injects its version into the process running inside it through
the KONSOLE_VERSION environment variable [1].  This is used by programs
like Neovim to detect the terminal features supported by Konsole [2].
This is just like VTE and its VTE_VERSION environment variable.

The KONSOLE_VERSION environment variable is not meant to be set by the
shell's start-up scripts, but directly by Konsole, and hence needs to be
preserved across the host operating system and Toolbx container.

[1] Konsole commit b0d3d83eca4f523a
    https://invent.kde.org/utilities/konsole/-/commit/b0d3d83eca4f523a
    https://phabricator.kde.org/D12621
    https://bugs.kde.org/show_bug.cgi?id=347323

[2] Neovim commit c16529afa5c8eb03
    https://github.com/neovim/neovim/commit/c16529afa5c8eb03
    https://github.com/neovim/neovim/issues/8300

https://github.com/containers/toolbox/issues/1449

Signed-off-by: Dominique Polek <dominique.polek@mailbox.org>
2024-02-27 03:59:01 +01:00
Jens Petersen 25391e75a1 pkg/utils: Update fallback release to 38 for non-fedora hosts
Fedora 37 will reach End of Life on 5th December 2023:
https://docs.fedoraproject.org/en-US/releases/eol/
https://fedorapeople.org/groups/schedule/f-39/f-39-all-tasks.html

https://github.com/containers/toolbox/pull/1403

Signed-off-by: Jens Petersen <petersen@redhat.com>
2023-12-04 20:06:06 +01:00
Debarshi Ray 5cdd30efd3 pkg/utils: Preserve environment variables for Bash's history facility
Any system-wide customization to Bash's history facilities done through
a custom /etc/profile.d configuration snippet on the host operating
system gets lost inside the Toolbx container.

This is because Toolbx doesn't know what name to expect for the custom
/etc/profile.d snippet on the host, and, hence, can't give access to it
through a bind mount or symbolic link inside the container.  The user
can definitely set up their own symbolic link inside the container to a
snippet inside /run/host/etc/profile.d.  However, it's tedious to do
that for all containers, and the user may not even know that they are
missing the customization until they notice something wrong with the
history, which is shared across all containers and the host, and at that
point they might have already lost commands that they can't easily
reconstruct.

Therefore, it's worth trying to improve the situation by default.

This tries to preserve the environment variables used to customize
Bash's history facilities [1] across the host operating system and
Toolbx container.  It assumes that the Bash start-up scripts inside the
container won't overwrite any of the propagated variables, which might
not always be the case [2].

[1] https://www.gnu.org/software/bash/manual/html_node/Bash-History-Facilities.html
    https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html

[2] https://pagure.io/setup/pull-request/48

https://github.com/containers/toolbox/issues/1359
2023-09-30 14:22:31 +02:00
Debarshi Ray 2ee82affeb pkg/utils: Offer built-in support for Arch Linux
This allows using the 'distro' option to create and enter Arch Linux
containers.  Due to Arch's rolling-release model, the 'release' option
isn't required.  If 'release' is used, the accepted values are 'latest'
and 'rolling'.

https://github.com/containers/toolbox/pull/1311
2023-06-12 22:26:46 +02:00
Debarshi Ray ed76734eb6 pkg/utils: Support OSes that don't have the concept of a release
Operating system distributions like Arch Linux that follow a
rolling-release model don't have the concept of a release.  The latest
snapshot is the only available release.

A subsequent commit will add built-in support for Arch Linux.  Hence,
the code can no longer assume that every distribution will have a
matching release.

Note that just because an operating system distribution may not have the
concept of a release, it doesn't mean that it will accept an invalid
'release' option.

https://github.com/containers/toolbox/pull/1311
2023-06-12 22:23:14 +02:00
Debarshi Ray 774ce8bd07 pkg/utils: Rename a variable for consistency
Fallout from df7e01df10

https://github.com/containers/toolbox/pull/1303
2023-06-12 17:01:24 +02:00
Debarshi Ray d14fd7bb50 pkg/utils: Support host operating systems without VERSION_ID
The VERSION_ID field in os-release(5) is optional [1].  It's absent on
Arch Linux, which follows a rolling-release model and uses the BUILD_ID
field instead:
  BUILD_ID=rolling

A subsequent commit will add built-in support for Arch Linux.  Hence,
the code to get the default release from the host operating system can
no longer assume the presence of the VERSION_ID field in os-release(5).

Note that the arch-toolbox image is tagged with 'latest', in accordance
with OCI conventions, not 'rolling' [2,3], which is the os-release(5)
BUILD_ID.  Therefore, it will be wise to use 'latest' as the default
release on Arch Linux, to simplify how the default release matches with
the default image's tag.  This means that a os-release(5) field can't be
used for the default release on Arch.

[1] https://www.freedesktop.org/software/systemd/man/os-release.html

[2] Commit 2568528cb7
    https://github.com/containers/toolbox/pull/861

[3] Commit a4e5861ae5
    https://github.com/containers/toolbox/pull/1308

https://github.com/containers/toolbox/pull/1303
2023-06-12 16:47:48 +02:00
Debarshi Ray b6ca18ead1 pkg/utils, test/system: Use the Ubuntu images from quay.io/toolbx/...
https://github.com/containers/toolbox/pull/1306
2023-06-08 15:35:44 +02:00
Debarshi Ray 4a1d9fc037 pkg/utils: Mark a private function as such
Reading the VERSION_ID field from the host operating system's
os-release(5) only needs to happen when initializing this package.

Fallout from 9e2825524a

https://github.com/containers/toolbox/pull/1304
2023-06-07 17:04:06 +02:00
Ievgen Popovych a84a358b3b pkg/utils, test/system: Offer built-in support for Ubuntu
This allows using the --distro and --release options to create and enter
Ubuntu containers.

Note that Ubuntu 4.10 was the first ever Ubuntu release [1].  Hence,
values older than that are not permitted for the --release option.

Some changes by Debarshi Ray.

[1] https://wiki.ubuntu.com/Releases

https://github.com/containers/toolbox/pull/483
https://github.com/containers/toolbox/pull/1284

Signed-off-by: Ievgen Popovych <jmennius@gmail.com>
2023-03-28 00:14:19 +02:00
Debarshi Ray 34baa10f41 pkg/utils: Update fallback release to 37 for non-fedora hosts
Fedora 34 reached End of Life on 7th June 2022:
https://docs.fedoraproject.org/en-US/releases/eol/

https://github.com/containers/toolbox/pull/1239
2023-02-16 14:12:05 +01:00
Debarshi Ray 8af80292d3 pkg/utils: Preserve the session class
In order to work with systemd-logind, a display manager is expected to
set the session class [1].  Setting the XDG_SESSION_CLASS environment
variable is one way to do that.

It's worth noting that the GNOME Display Manager (or GDM) does set
XDG_SESSION_CLASS [2] even though GNOME Shell uses other means to
differentiate between 'greeter' and 'user' sessions.

[1] https://www.freedesktop.org/wiki/Software/systemd/writing-display-managers/

[2] GDM commit 29ebbbb37bb65fad
    https://gitlab.gnome.org/GNOME/gdm/-/commit/29ebbbb37bb65fad
    https://bugzilla.gnome.org/show_bug.cgi?id=670100

https://github.com/containers/toolbox/issues/992
2023-02-10 20:18:57 +01:00
Debarshi Ray 0a29b374e6 pkg/utils: Support RHEL 9 Toolbx containers
The URLs for the RHEL Toolbx images based on the Red Hat Universal Base
Images (or UBI) are a bit more complicated to construct, in comparison
to the URLs for Fedora's fedora-toolbox images.  It's not enough to just
concatenate the registry, the image's basename and the release.  Some
parts of the URL depend on the release's major number, which requires
custom code.

So far, the release's major number was hard coded to 8 since only RHEL 8
Toolbx containers were supported.

To support other RHEL major releases, it's necessary to have custom code
to construct the URLs for the Toolbx images.

https://github.com/containers/toolbox/issues/1065
2023-01-29 11:33:01 +01:00
Debarshi Ray 262c90e06f pkg/utils: Be more strict about what is acceptable
https://github.com/containers/toolbox/issues/1065
2023-01-29 11:33:01 +01:00
Debarshi Ray 630792e0a1 Update copyright notices
https://github.com/containers/toolbox/pull/1179
2022-11-28 21:01:18 +01:00
Debarshi Ray 00def007f5 pkg/utils: Address the confusion around handling errors from Viper
It turns out that Viper's custom error implementations use non-pointer
receivers, whereas often people assume pointer receivers.  This can
cause confusion when trying to use errors.As(...) with those errors [1].

Secondly, Viper may or may not throw ConfigFileNotFoundError depending
on its build tags.

[1] https://github.com/spf13/viper/issues/1139

https://github.com/containers/toolbox/pull/1105
2022-09-02 18:51:32 +02:00
Debarshi Ray 53c5694040 cmd/utils, pkg/utils: Improve an error message for the image option
https://github.com/containers/toolbox/pull/1104
2022-09-02 15:19:00 +02:00
Debarshi Ray 8454b31a82 cmd/utils, pkg/utils: Improve the error messages for the distro option
https://github.com/containers/toolbox/issues/937
https://github.com/containers/toolbox/pull/1103
2022-09-02 14:52:44 +02:00
Debarshi Ray 8ca5611942 Increase the validation coverage for the container & release options
Currently, the container name and release are only validated if they
were specified as command line options.  Neither the value of release
in the configuration file nor the container name generated from an
image are validated.

There's also a lot of repeated code in the command front-ends to
validate the container name and release.  This opens the door for
mistakes.  Any adjustment to the code must be repeated elsewhere, and
there are subtle interactions and overlaps between the validation code
and the code to resolve container and image names.

It's worth noting that the container and image name resolution happens
for both the command line and configuration file options, and generates
the container name from the image when necessary.

Therefore, validating everything while resolving cleans up the command
front-ends and increases the coverage of the validation.

This introduces the use of sentinel error values and custom error
implementations to identify the different errors that can occur while
resolving the container and images, so that they can be appropriately
shown to the user.

https://github.com/containers/toolbox/pull/1101
2022-09-02 13:11:32 +02:00
Debarshi Ray b5474bff84 cmd, pkg/utils: Clarify the error message if the release is invalid
Currently, if --release has an invalid argument, the error message
doesn't give any hints as to what's an acceptable value.  This can be
confusing.  eg., is 36 a valid argument for Fedora?  Or is it f36?  Or
is it F36?  Is 'rawhide' accepted?

https://github.com/containers/toolbox/issues/937
https://github.com/containers/toolbox/pull/1100
2022-09-01 17:57:39 +02:00
Debarshi Ray aead0023e3 pkg/utils: Rename a variable
This will make the subsequent commit easier to read.

https://github.com/containers/toolbox/issues/937
https://github.com/containers/toolbox/pull/1100
2022-09-01 17:57:35 +02:00
Debarshi Ray df7e01df10 pkg/utils: Ensure that the distro CLI and config file options are valid
Currently, if an invalid or unsupported string is specified as the
distro on the command line or in the configuration file, then it would
silently fallback to Fedora.  This shouldn't happen.

It should only fallback to Fedora when no distro was specified and
there's no supported Toolbox image matching the host operating system.
If a distro was explicitly specified then it should either be supported
or it should error out.

The test cases were resurrected from commit 8b6418d8aa.

https://github.com/containers/toolbox/issues/937
https://github.com/containers/toolbox/pull/1080
2022-09-01 17:43:20 +02:00
Debarshi Ray f5bcd22ade pkg/utils: Clarify the default and fallback values
The terms 'default' and 'fallback' are used to mean very specific
things in this context.

The 'default' values are those that are used when the 'create', 'enter'
and 'run' commands were used without any option.  These values are
picked to match the host operating system.

However, if there's no supported Toolbox image matching the host
operating system, and no options were provided to the 'create', 'enter'
and 'run' commands, then the 'fallback' values are used as a last
resort.

Consistently using this terminology leads to a clear mental model and
makes the code easier to read.

This rough arrangement of the code was already being used for
'release', and has now been been extended to 'container name prefix'
and 'distro'.  The suffix for the 'fallback' values was simplified to
'Fallback', instead of 'DefaultFallback'.

https://github.com/containers/toolbox/issues/937
https://github.com/containers/toolbox/pull/1080
2022-09-01 17:43:15 +02:00
Debarshi Ray 344dda6d8d pkg/utils: Re-unify container & image name resolution
The idea of splitting ResolveContainerAndImageNames into two public
functions [1] didn't turn out to be so useful [2].  It pushed the
burden on the callers, who needed to carefully call the split
functions in the right order, because the container, distro, image and
release values are very tightly related.  This opens the door for
mistakes.

A better approach would be to restore ResolveContainerAndImageNames as
the single public API.  If necessary it could be internally split into
smaller private functions.  It would keep things simple for the
callers.

Note that this commit doesn't include the private split.  If necessary,
it can be done in future.

This reverts commit fd756089ef.

[1] Commit fd756089ef
    https://github.com/containers/toolbox/pull/828
    https://github.com/containers/toolbox/pull/838

[2] https://github.com/containers/toolbox/pull/977

https://github.com/containers/toolbox/issues/937
https://github.com/containers/toolbox/pull/1080
2022-09-01 17:43:10 +02:00
Debarshi Ray 0e66af91fe Revert "cmd, pkg/utils: Split distro and release parsing and ..."
The idea of splitting ResolveContainerAndImageNames into two public
functions [1] didn't turn out to be so useful [2].  Splitting things
even further might make it worse.  A better approach might be to
(re-)unify the code further.

This is the first step towards that.

This reverts the following commits:
  * 5c8ad7a7ec
  * 02f45fd3f2
  * 8b6418d8aa

... but retains the test cases that were not tied to the changes in
those commits.

[1] Commit fd756089ef
    https://github.com/containers/toolbox/pull/828
    https://github.com/containers/toolbox/pull/838

[2] https://github.com/containers/toolbox/pull/977

https://github.com/containers/toolbox/issues/937
https://github.com/containers/toolbox/pull/1080
2022-09-01 17:43:04 +02:00
Debarshi Ray 59f71219b7 pkg/utils: Mark a private function as such
Figuring out the container name prefix for a given image only needs to
happen as part of resolving the final Toolbox container name from the
given command line and configuration options.

Fallout from c990fb43ca

https://github.com/containers/toolbox/pull/1098
2022-08-31 21:06:51 +02:00
Debarshi Ray e6c9c0c925 pkg/utils: Be more strict about what is acceptable
https://github.com/containers/toolbox/pull/1097
2022-08-31 20:26:21 +02:00
Ondřej Míchal 5c8ad7a7ec pkg/utils: Use global default instead of magic value
Found while working on https://github.com/containers/toolbox/issues/937

https://github.com/containers/toolbox/pull/977
2022-02-21 13:43:24 +02:00
Ondřej Míchal 02f45fd3f2 pkg/utils: Use newly introduced API for resolving default distro
https://github.com/containers/toolbox/pull/977
2022-02-21 13:43:24 +02:00
Ondřej Míchal 8b6418d8aa cmd, pkg/utils: Split distro and release parsing and report better errors
Using a non-supported distribution via `--distro` resulted in a silent
fallback to the Fedora image which confuses users. When a faulty release
format was used with `--release` a message without any hint about the
correct format was shown to the user.

This separates distro and release parsing into two chunks that have
greater control over error reporting and provides more accurate error
reports for the user.

Fixes https://github.com/containers/toolbox/issues/937

https://github.com/containers/toolbox/pull/977
2022-02-21 13:43:24 +02:00
Ondřej Míchal f456c173b6 pkg/utils: Use new UBI toolbox image
Red Hat has published a new UBI image made specificaly for Toolbx.
Make use of it from now on.

Fixes: https://github.com/containers/toolbox/issues/961

https://github.com/containers/toolbox/issues/976
2022-01-09 16:46:37 +01:00
Ondřej Míchal be4d3974ef pkg/utils: Move CLI utility functions to cmd
pkg/utils has been in Go Toolbox since its birth. Along the way it
accumulated a number of functions where a few of them are purely CLI
related. Since the majority of functions in the package are related to
some "deeper" functionality in Toolbox, it makes more sense to move the
selected few to package cmd. This will make pkg/utils a bit leaner and
create a dedicated space for cmd utility functions to live in.

In the process the error creation functions no longer require the
executableBase argument to be passed to them.

https://github.com/containers/toolbox/pull/819
2021-11-07 23:18:46 +02:00
Ondřej Míchal 20f4f68c4e cmd/root, pkg/utils: Add support for configuration files
It looks like there are some oddities with Viper [1]. The errors can't
be examined with errors.As [2] and Viper doesn't actually throw
ConfigFileNotFoundError if a configuration file is not found. Secondly,
there's no way to find out if a key was actually specified in a
configuration file. The InConfig API doesn't return 'true' even if a
key was mentioned in a configuration file, and the IsSet API returns
'true' even if the key was only set via SetDefault in the code.

Some changes by Debarshi Ray.

[1] https://pkg.go.dev/github.com/spf13/viper
[2] https://blog.golang.org/go1.13-errors

https://github.com/containers/toolbox/pull/828
https://github.com/containers/toolbox/pull/851
2021-07-23 03:56:03 +02:00
Debarshi Ray 5824f0adcb cmd/create, pkg/utils: Simplify hint after creating a container
A subsequent commit will add support for configuration files, which can
override the default toolbox image. Since this override affects all
commands, it effectively ends up adding a fourth option to the 'enter'
command, other than the existing options to change the distribution,
release and container. This makes it a lot more difficult to reason
when only 'toolbox enter --release N' is enough to enter the created
container.

https://github.com/containers/toolbox/pull/828
https://github.com/containers/toolbox/pull/851
2021-07-23 03:49:08 +02:00
Debarshi Ray 6a37695086 pkg/utils: Mark a private function as such
Figuring out the default toolbox image for a given distribution only
needs to happen as part of resolving the final toolbox image name from
the given command line options.

Fallout from c990fb43ca

https://github.com/containers/toolbox/pull/828
https://github.com/containers/toolbox/pull/851
2021-07-23 03:49:08 +02:00
Jens Petersen d9945a6505 utils: bump the fallback Fedora version to 34
https://github.com/containers/toolbox/pull/845
2021-07-21 23:44:20 +02:00
Ondřej Míchal d9147fff8c pkg/utils: Streamline functions
https://github.com/containers/toolbox/pull/847
2021-07-21 21:12:09 +02:00
Ondřej Míchal f7617912e5 pkg/utils: Rename parameter in ParseRelease
It was not apparent on first glance that the second parameter
represented a release (resp. tag).

https://github.com/containers/toolbox/pull/835
2021-07-16 18:00:01 +02:00