* Try replacing `sed` "arrays" with `eval` "arrays" in `install_find_pkgs()` and `install_get_pkgs()`, using `tr` to sanitize package names (as in opkbuild). Benchmark. This essentially replaces one `sed` command per package (in `install_get_pkgs()`) with two `tr` commands (one per function; no need to convert case as in opkbuild), which should reduce the algorithmic complexity of installations from O(*n*) (where *n* is the number of packages in the archive) to something closer to O(1). * Add interactive frontend for installers: - Clean up `install_system()` and `installer-pc` output + Maybe write everything to an installation log file in `${root}/var/log/` - New `lib/tui.sh` interface to `lib/tui/select.sh` and `lib/tui/dialog.sh` backends (with `configure` looking for **dialog**) - Make `install_system()` accept an output callback to use instead of `info()` - Add a `prof_get_platforms_by_tag(suite, tag, plat_cb)` function that calls `${plat_cb} "${name}" "${desc}"` on each matching platform + ProteanOS implementation: download and parse (control file) - Add library functions for a `select` implementation, pretty-printing sizes in decimal and binary units, and searching for block devices - Implement an interactive mode of `installer-pc`: + Change usage to `[-a -p [-m ] ]` (i.e. make all arguments optional) + Get a `Manifest` of suites from profile, present options to user + Call `prof_get_platforms_by_tag()` with a "pc" tag + Call a profile function to get architectures (with names and descriptions) for a given suite and platform + Pass a tui function as the output callback to `install_system()` * Make `installer-pc` check architecture compatibility (host CPU and kernel vs. those of system to install)? - Can't do a "foreign" installation, unless LILO is not to be installed (as on libreboot-specific platforms)