WIP: Installation Strategy Redesign #15
Reference in New Issue
Block a user
Delete Branch "fix/reference-counting"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Registry Infrastructure
Add
lib/registry.shthat provides:ensure_registryregistry.jsonexists.{ "tools": {} }if it does not already exist.registry_set <jq_filter> [args...]flock -x 200to acquire an exclusive lock onregistry.json.lockbefore executing thejqfilter.register_tool <tool_name> <strategy> [version] [source]installed_attimestamp.binary, automatically stores the binary path as$BOOTSTRAP_DIR/bin/<tool_name>registry_add_sys_deps <tool_name> <dep1> <dep2>...ffmpeg,fd-find) to the tool'ssystem_dependenciesarray.registry_remove_tool <tool_name>registry.jsonduring uninstallation.registry_get_sys_deps <tool_name>system_dependenciesarray, one per line.registry_check <tool_name>binarymanagedcommand -v.systemsystem_dependenciesand runspkg_checkon each package. If no dependencies are recorded, falls back tocommand -v.Returns
0if all checks pass, otherwise1.GitHub Release Helper
Add a shared
lib/github.shhelper to standardize the "download latest GitHub release" pattern that is currently duplicated across many installers.Installer Migration
Package Management
pkg_installandpkg_remove.systemstrategy dependencies.Other Changes
jqinstead oflib/json.sh.Closes #1 #14 #16
WIP: Redesigning Package Registryto WIP: Installation Strategy Redesigngithub.shf5a266ff70Bootstrap is now using XDG Compliant and Isolated directory structure
Environment Variables
BOOTSTRAP_DIR~/.config/bootstrapBOOTSTRAP_DATA_DIR~/.local/share/bootstrapBOOTSTRAP_STATE_DIR~/.local/state/bootstrapBOOTSTRAP_CACHE_DIR~/.cache/bootstrapBOOTSTRAP_BIN$BOOTSTRAP_DATA_DIR/binBOOTSTRAP_OPT$BOOTSTRAP_DATA_DIR/optBOOTSTRAP_RUNTIMES$BOOTSTRAP_DATA_DIR/runtimescloses #18
pkg_installandpkg_remove0c16640593Improved rollback command to also act as an uninstall command for individual tools.
b rb tool_a,tool_b,tool_c)View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.