internal/

directory
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2026 License: MIT

Directories

Path Synopsis
Package archive extracts downloaded manifest assets.
Package archive extracts downloaded manifest assets.
Package auth implements FR-30 through FR-35: per-host HTTP authentication, resolved env-var-first then Credential Manager (FR-33), injected only as an Authorization header on requests to that exact host -- never written into a manifest, never put in a URL (FR-30, FR-35).
Package auth implements FR-30 through FR-35: per-host HTTP authentication, resolved env-var-first then Credential Manager (FR-33), injected only as an Authorization header on requests to that exact host -- never written into a manifest, never put in a URL (FR-30, FR-35).
Package bucket manages Scoop-compatible manifest buckets: Git repositories cloned locally (FR-20, the default), or plain archives served by an artifact host with no Git involved (FR-21) -- searched in priority order to resolve an app name to a manifest (FR-22).
Package bucket manages Scoop-compatible manifest buckets: Git repositories cloned locally (FR-20, the default), or plain archives served by an artifact host with no Git involved (FR-21) -- searched in priority order to resolve an app name to a manifest (FR-22).
Package credstore stores per-host credentials in the Windows Credential Manager (FR-32: DPAPI-backed, per-user isolated -- the OS handles the encryption, goop never does).
Package credstore stores per-host credentials in the Windows Credential Manager (FR-32: DPAPI-backed, per-user isolated -- the OS handles the encryption, goop never does).
Package downloader fetches manifest URLs with mandatory hash verification before the result is trusted (FR-40), caching by content hash so a repeated install or a shared dependency doesn't re-fetch.
Package downloader fetches manifest URLs with mandatory hash verification before the result is trusted (FR-40), caching by content hash so a repeated install or a shared dependency doesn't re-fetch.
Package envvars implements env_set/env_add_path (CPT-03): setting and unsetting per-user environment variables via HKCU\Environment, the same registry location Scoop itself uses (never HKLM -- NR-01, no admin rights, no system-wide changes).
Package envvars implements env_set/env_add_path (CPT-03): setting and unsetting per-user environment variables via HKCU\Environment, the same registry location Scoop itself uses (never HKLM -- NR-01, no admin rights, no system-wide changes).
Package installer orchestrates install/uninstall/list (FR-01, FR-02, FR-04): resolving a manifest, downloading and verifying its assets, extracting them, running any delegated PowerShell (CPT-04), wiring up the version junction, and creating shims/shortcuts.
Package installer orchestrates install/uninstall/list (FR-01, FR-02, FR-04): resolving a manifest, downloading and verifying its assets, extracting them, running any delegated PowerShell (CPT-04), wiring up the version junction, and creating shims/shortcuts.
Package lockfile implements goop's reproducibility layer (A3): FR-10, a versionable lockfile capturing name/version/bucket/resolved URL/hash/architecture (plus Bin/ExtractDirs/ExtractTos, goop's own addition beyond that minimum -- needed so a synced install actually gets working shims without consulting a bucket at all, per FR-11).
Package lockfile implements goop's reproducibility layer (A3): FR-10, a versionable lockfile capturing name/version/bucket/resolved URL/hash/architecture (plus Bin/ExtractDirs/ExtractTos, goop's own addition beyond that minimum -- needed so a synced install actually gets working shims without consulting a bucket at all, per FR-11).
Package manifest decodes Scoop-format app manifests (CPT-01, CPT-02).
Package manifest decodes Scoop-format app manifests (CPT-01, CPT-02).
Package maven resolves a Maven-repository coordinate (groupId:artifactId:version:classifier:packaging) to a downloadable artifact URL and its published hash -- goop's second, manifest-free install path (`goop install maven:...`) for tools only ever published as a Maven distribution archive, never as a Scoop manifest.
Package maven resolves a Maven-repository coordinate (groupId:artifactId:version:classifier:packaging) to a downloadable artifact URL and its published hash -- goop's second, manifest-free install path (`goop install maven:...`) for tools only ever published as a Maven distribution archive, never as a Scoop manifest.
Package mavenrepo manages named Maven repository sources -- mirrors internal/bucket's config-list shape (Entry/Config/List/priority search), minus the git-clone/archive-fetch machinery that doesn't apply here: a Maven repo has no local directory, it's just a base URL resolved against per-install (internal/maven).
Package mavenrepo manages named Maven repository sources -- mirrors internal/bucket's config-list shape (Entry/Config/List/priority search), minus the git-clone/archive-fetch machinery that doesn't apply here: a Maven repo has no local directory, it's just a base URL resolved against per-install (internal/maven).
Package minisign verifies minisign signatures (FR-41: signature verification when a manifest or bucket provides one; A5 provenance).
Package minisign verifies minisign signatures (FR-41: signature verification when a manifest or bucket provides one; A5 provenance).
Package paths centralizes goop's on-disk layout so every other package agrees on where things live (D4 in the spec is open; this picks a standalone root rather than reusing Scoop's, revisit at CPT-07/import time).
Package paths centralizes goop's on-disk layout so every other package agrees on where things live (D4 in the spec is open; this picks a standalone root rather than reusing Scoop's, revisit at CPT-07/import time).
Package profile groups installed apps into user-curated, named profiles ("core", "projectA", "projectB", ...) -- a membership label, not an isolated environment: installation itself stays global/shared exactly as always (one apps/<name>/ tree regardless of how many profiles reference it).
Package profile groups installed apps into user-curated, named profiles ("core", "projectA", "projectB", ...) -- a membership label, not an isolated environment: installation itself stays global/shared exactly as always (one apps/<name>/ tree regardless of how many profiles reference it).
Package pwsh delegates manifest PowerShell (pre_install, post_install, installer.script, uninstaller.script) to a real pwsh/powershell process, never reinterpreting it (CPT-04).
Package pwsh delegates manifest PowerShell (pre_install, post_install, installer.script, uninstaller.script) to a real pwsh/powershell process, never reinterpreting it (CPT-04).
Package selfupdate replaces goop's own binary with the current release.
Package selfupdate replaces goop's own binary with the current release.
Package shim implements the goop shim: a single native executable, hard-linked under many command names, that reads a sidecar file describing its real target and execs it with exact argument, exit-code, and stdio fidelity.
Package shim implements the goop shim: a single native executable, hard-linked under many command names, that reads a sidecar file describing its real target and execs it with exact argument, exit-code, and stdio fidelity.
Package shimbin embeds the compiled shim binary (cmd/shim) so cmd/goop can hard-link fresh shims at install time without needing a Go toolchain present on the target machine (TR-01).
Package shimbin embeds the compiled shim binary (cmd/shim) so cmd/goop can hard-link fresh shims at install time without needing a Go toolchain present on the target machine (TR-01).
Package ui provides goop's terminal styling: colors, symbols, and aligned tables.
Package ui provides goop's terminal styling: colors, symbols, and aligned tables.
Package vercmp implements D3's version-constraint grammar: extended Scoop-style ordering rather than strict SemVer, since real manifest versions rarely follow it (e.g.
Package vercmp implements D3's version-constraint grammar: extended Scoop-style ordering rather than strict SemVer, since real manifest versions rarely follow it (e.g.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL