From f8f7e87f4edfe38c1caccdd5097eb29dc4784024 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 09:49:55 -0400 Subject: [PATCH 1/4] linux-dev/workstation-v0: add profile-local sourceos helper CLI --- .../linux-dev/workstation-v0/bin/sourceos | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 profiles/linux-dev/workstation-v0/bin/sourceos diff --git a/profiles/linux-dev/workstation-v0/bin/sourceos b/profiles/linux-dev/workstation-v0/bin/sourceos new file mode 100644 index 0000000..0716156 --- /dev/null +++ b/profiles/linux-dev/workstation-v0/bin/sourceos @@ -0,0 +1,77 @@ +#!/usr/bin/env bash +set -euo pipefail + +# SourceOS workstation helper (linux-dev/workstation-v0) +# This is a small, dependency-light command surface intended to be callable from Albert. + +PROFILE_DIR_DEFAULT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +PROFILE_DIR="${SOURCEOS_PROFILE_DIR:-$PROFILE_DIR_DEFAULT}" + +err(){ printf "ERROR: %s\n" "$*" >&2; } +info(){ printf "INFO: %s\n" "$*" >&2; } + +usage(){ + cat < Date: Sat, 18 Apr 2026 09:50:28 -0400 Subject: [PATCH 2/4] linux-dev/workstation-v0: add installer to place sourceos helper on PATH --- .../bin/install-sourceos-cli.sh | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 profiles/linux-dev/workstation-v0/bin/install-sourceos-cli.sh diff --git a/profiles/linux-dev/workstation-v0/bin/install-sourceos-cli.sh b/profiles/linux-dev/workstation-v0/bin/install-sourceos-cli.sh new file mode 100644 index 0000000..709fd5d --- /dev/null +++ b/profiles/linux-dev/workstation-v0/bin/install-sourceos-cli.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Install the profile-local `sourceos` helper CLI to user scope. +# Target: ~/.local/bin/sourceos + +PROFILE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +SRC="$PROFILE_DIR/bin/sourceos" +DEST_DIR="${HOME}/.local/bin" +DEST="$DEST_DIR/sourceos" + +info(){ printf "INFO: %s\n" "$*" >&2; } +warn(){ printf "WARN: %s\n" "$*" >&2; } +err(){ printf "ERROR: %s\n" "$*" >&2; } + +main(){ + [[ -x "$SRC" ]] || { err "sourceos helper missing: $SRC"; exit 2; } + + mkdir -p "$DEST_DIR" + cp -f "$SRC" "$DEST" + chmod +x "$DEST" + + info "installed: $DEST" + + if [[ ":$PATH:" != *":$DEST_DIR:"* ]]; then + warn "~/.local/bin is not on PATH. Add one line to your shell rc:" + warn " export PATH=\"$DEST_DIR:\$PATH\"" + fi +} + +main "$@" From 2a94fd3a34857def5ee0eb4797c7031deb8c2b08 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 09:51:55 -0400 Subject: [PATCH 3/4] linux-dev/workstation-v0: install SourceOS helper CLI during profile install --- profiles/linux-dev/workstation-v0/install.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/profiles/linux-dev/workstation-v0/install.sh b/profiles/linux-dev/workstation-v0/install.sh index 01bd8bb..ea638c1 100644 --- a/profiles/linux-dev/workstation-v0/install.sh +++ b/profiles/linux-dev/workstation-v0/install.sh @@ -57,6 +57,16 @@ install_shell_spine(){ info "Enable by sourcing it from your shell rc (zshrc/bashrc)." } +install_sourceos_cli(){ + local script="$PROFILE_DIR/bin/install-sourceos-cli.sh" + if [[ -x "$script" ]]; then + info "Installing SourceOS helper CLI to ~/.local/bin" + "$script" || warn "sourceos CLI install failed (non-fatal)" + else + warn "sourceos CLI installer not found: $script" + fi +} + apply_gnome_baseline(){ local script="$PROFILE_DIR/gnome/apply.sh" if [[ -x "$script" ]]; then @@ -112,6 +122,7 @@ main(){ install_system install_user install_shell_spine + install_sourceos_cli apply_gnome_baseline apply_gnome_extensions apply_albert_install From 2f6be4a83e96353258cbc7c89c4ba0157d504e11 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 18 Apr 2026 11:02:02 -0400 Subject: [PATCH 4/4] linux-dev/workstation-v0: doctor requires sourceos helper on PATH --- profiles/linux-dev/workstation-v0/doctor.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/profiles/linux-dev/workstation-v0/doctor.sh b/profiles/linux-dev/workstation-v0/doctor.sh index 225a239..c699c6e 100644 --- a/profiles/linux-dev/workstation-v0/doctor.sh +++ b/profiles/linux-dev/workstation-v0/doctor.sh @@ -63,6 +63,9 @@ main(){ # USER expectations check brew + # SourceOS helper (needed for Albert SourceOS plugin actions) + check sourceos + # Core CLI must-haves check fzf check atuin