Skip to content

Rename CLI binary to managedbootstrapinstall + consolidate staging on /Library/Managed Bootstrap#6

Merged
rodchristiansen merged 2 commits into
mainfrom
rename-managedbootstrapinstall
Jun 22, 2026
Merged

Rename CLI binary to managedbootstrapinstall + consolidate staging on /Library/Managed Bootstrap#6
rodchristiansen merged 2 commits into
mainfrom
rename-managedbootstrapinstall

Conversation

@rodchristiansen

Copy link
Copy Markdown
Contributor

What

Hard-cut rename of the macOS CLI binary installapplicationsmanagedbootstrapinstall, plus two cleanups requested alongside it.

Changes

  • Binary rename (packaging layer only — the Swift product was already named bootstrapmate):
    • Makefile BINARY_NAME + codesign identifier (com.github.bootstrapmate.managedbootstrapinstall)
    • LaunchDaemon ProgramArguments path
    • postinstall binary path + /usr/local/bootstrapmate/managedbootstrapinstall symlink; removes the legacy installapplications symlink on upgrade (hard cut)
    • BootstrapMateConstants.executablePath
    • README usage + CI/release workflow copy targets
  • Staging consolidation: ManifestGenerator now writes payload file paths under /Library/Managed Bootstrap/ (was the divergent /Library/bootstrapmate/).
  • Drop dead domain: removed the unused io.macadmins.installapplications managed-preference fallback from ConfigManager and ManagementDetector — ECU only ever ships com.github.bootstrapmate.

Notes

  • Detection/management still keys off com.github.bootstrapmate; no MDM-profile impact.
  • The live management.json staging path (/Library/installapplications/) is set by provisioning-intune-macintosh/deploy.sh — moved to /Library/Managed Bootstrap/ in that repo's companion PR.
  • swift build passes.

Part of the cross-repo installapplicationsmanagedbootstrapinstall switch (Windows app + Cimian pipeline + provisioning repos ship alongside).

…solidate staging on /Library/Managed Bootstrap

- Makefile BINARY_NAME and codesign identifier
- LaunchDaemon program path, postinstall binary path + symlink (drops legacy installapplications symlink on upgrade)
- BootstrapMateConstants.executablePath
- ManifestGenerator now stages payloads under /Library/Managed Bootstrap/cache/ (was /Library/bootstrapmate/), matching the live fleet convention
- Drop unused io.macadmins.installapplications managed-pref fallback domain (ECU ships only com.github.bootstrapmate)
- README + CI/release workflow copy targets

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Renames the packaged macOS CLI binary from installapplications to managedbootstrapinstall, consolidates staging paths under /Library/Managed Bootstrap, and removes the legacy managed-preference domain fallback.

Changes:

  • Updated packaging, LaunchDaemon, constants, and CI/release workflows to use the new CLI binary name/path.
  • Consolidated manifest payload file paths to /Library/Managed Bootstrap/cache/.
  • Removed io.macadmins.installapplications as a managed-preference fallback domain.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Sources/core/Utilities/ManifestGenerator.swift Updates generated manifest file path to the new Managed Bootstrap cache location.
Sources/core/Utilities/ManagementDetector.swift Removes the legacy managed domain fallback.
Sources/core/Utilities/BootstrapMateConstants.swift Updates embedded CLI executable path constant to managedbootstrapinstall.
Sources/core/Managers/ConfigManager.swift Removes the legacy managed-preference domain fallback.
README.md Updates CLI usage example to the new binary name.
packaging/scripts/postinstall Updates installed binary/symlink naming and removes legacy symlink.
packaging/LaunchDaemons/com.github.bootstrapmate.plist Updates LaunchDaemon ProgramArguments to the renamed CLI binary.
Makefile Renames packaged binary and updates codesign identifier.
.github/workflows/release.yml Updates release packaging copy/chmod/grep targets to the renamed binary.
.github/workflows/ci.yml Updates CI app bundle creation to use the renamed binary.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 41 to 45
let manifestItem = ManifestItem(
name: item.name,
file: "/Library/bootstrapmate/\(URL(fileURLWithPath: item.file).lastPathComponent)",
file: "/Library/Managed Bootstrap/cache/\(URL(fileURLWithPath: item.file).lastPathComponent)",
url: "\(baseURL)/\(item.type)/\(URL(fileURLWithPath: item.file).lastPathComponent)",
hash: hash,
Comment on lines +48 to +49
# Hard cut: drop the legacy installapplications symlink from prior versions
rm -f "${SYMLINK_DIR}/installapplications" 2>/dev/null || true
…upgrade

- ManifestGenerator: derive staging path from BootstrapMateConstants.cacheDirectory and compute lastPathComponent once (single filename var)
- postinstall: launchctl bootout the existing job before load, so an upgrade picks up the renamed executable path instead of no-op'ing on the already-loaded label
@rodchristiansen

Copy link
Copy Markdown
Contributor Author

Addressed Copilot review in fea4e67:

  • ManifestGenerator now derives the staging path from BootstrapMateConstants.cacheDirectory and computes lastPathComponent once via a single filename var.
  • postinstall now launchctl bootouts the existing job before load, so an upgrade picks up the renamed executable path instead of no-op'ing on the already-loaded label.

@rodchristiansen rodchristiansen merged commit 5332d5e into main Jun 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants