- Define `EditKind` type and replace edit boolean in order to
prevent accidental misparameterisation
- Fix the `edit_file` invocation in the desktop module with the
`&EditKind::Edit` parameter.
- Most `shellcheck` warnings and errors fixed
- Restructure workspace validation scripting
- Declare `set -eEo pipefail` at the top of each script
- Declare proper, semantic bash arrays for runtime script
- Use a semantic shebang for scripting
- Process `--id-list` option now requires the `-t, --target` option to be
specified without the omission thereof.
- Fix command-flow for `-h, --help` with process option.
- Revise manual with elaboration on display and enumeration options
- Add documentation for the `to_xdg_runtime` and `to_xdg_home`
filesystem modules
- Amend documentation to reflect the revised `root` module
- Clarify some of the verbiage in filesystems documentation
- Implement `eprintln_warn` and `eprintln_warn` macros.
- Move generalised, utility macros to the utils module.
- Refactor `format_str` to `format_static`.
- Remove re-exports of ansi functions from utils module.
- Deprecate `--list` and `--desktop` in the utilities command module.
- Updated help entries for `--desktop` and `--list`
- `--help` in list and desktop command modules
- Introduce `lazy_lock` macro to maintain compatibility with former
lazy_static declarations, and remove `lazy_static` as a package
dependency for pacwrap-core.
- Replace needlessly verbose ansi functions with `ansi` macro block.
- Update workspace 'Cargo.toml' and `README.md` to change the MSRV
from 1.72 to 1.80.
- Update `Cargo.lock`
- Implement rudimentary, lazy INI parsing to handle files following the
XDG Desktop Entry Specification. Data such as the application name and
container name are parsed from these files.
- List table expanded to three columns, with container metadata if
applicable, providing application name. container name, the name of
desktop entries.
- `-f/--find` CLI parameter to filter the table listing by predicate.
- Add extend function to utils::table module.
- Support declaration of volume mounts in root filesystem module.
- Default impls for home and root filesystem modules and the none
permission module.
- Declare consts for default volume mounts.
- Support desktop entries referenced by a symbolic link
- Provide a general purpose path canonicalization API for containers
with the `exec::path::resolve_path` function.
- TryExec fields are now replaced with a valid entry referring to the
pacwrap binary
- Qualify and only warn if XDG directories are missing, otherwise
disqualify with an error.
- Fix registration iter chain to ensure location is qualified.
- Error type in the error module now implements a broadly generic From<T>
impl for error conversion into the pacwrap-core library's Error type.
- `ErrorGeneric::prepend` and `ErrorGeneric::prepend_io` both now accept
borrowed or heap-allocated String return types without additional sugar.
- A lone unary postfix operator has been applied to external function calls
where deemed most appropriate, removing unnecessary function calls to
`ErrorGeneric::prepend` and `ErrorGeneric::prepend_io`.
Provides a shortcut to easily mount sockets and other miscelleny from
the $XDG_RUNTIME_DIR location into containers. With the use of the
`to_run` key, with a standard key/value structure for filesystem
volume mounts.
- Make use of `skip_serializing_none` macro, from the serde_with crate,
in both the `pipewire` and `pulseaudio` filesystem modules to clean up
the data structure.
- Utilise the `split_whitespace()` in function chain for the
`AlpmConfiguration::sig_level(&self)` function.
- In gpu module, use any instead of filter and is_empty in iter chain
for the nvidia variable.
- Implement serde Serializer and Deserializer for the Permission enum in
Filesystem module.
- Breaking: Refactor ExecutionArgs API, combining the 'robind' and
'bind' functions into a single function named 'bind'.
Since the Arch Linux OCI image can sometimes be out-of-sync, update the
keyring and base packages prior to installing the requisite packages.
This will hopefully ensure a cached container image can no longer
trigger a pipeline failure.
Note: This is a test release intended to ensure nothing breaks when the
associated crates are published to crates.io.
- Update to version '0.8.7-pre'.
- Testing new `Cargo.toml` workspace manifest, of which brings manifest
keys in all three pacwrap crates together. Most package keys now, with
the exception of crate-specific metadata, are now located in the
workspace manifest.
- Update common.sh to accomodate this change.
- Update README.md to again use relative paths.