No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-18 14:15:57 +02:00
ompstart Initial commit 2026-08-18 14:15:57 +02:00
README.md Initial commit 2026-08-18 14:15:57 +02:00

ompstart

ompstart is een kleine wrapper voor het starten van Oh My Pi (omp). Voor iedere startsessie voert het script eerst de beschikbare Homebrew-updates uit en werkt het daarna omp zelf bij. Pas wanneer beide stappen succesvol zijn afgerond, start het de normale omp-toepassing.

Werking

De uitvoervolgorde is strikt:

brew upgrade -y
        |
        v
omp update
        |
        v
exec omp <argumenten>

Het script doet het volgende:

  1. Controleert of brew in PATH staat.
  2. Controleert of omp in PATH staat.
  3. Voert brew upgrade -y uit.
  4. Voert omp update uit.
  5. Vervangt het wrapperproces met omp, waarbij alle meegegeven argumenten worden doorgegeven.

De optie -y is de Homebrew-alias voor --yes en --no-ask. Daarmee wordt de bevestigingsvraag voor het downloaden en upgraden overgeslagen.

Waarom exec?

De laatste regel gebruikt:

exec omp "$@"

exec start omp in hetzelfde proces in plaats van een extra shellproces achter te laten. "$@" geeft alle argumenten veilig en ongewijzigd door, inclusief argumenten met spaties.

Voorbeeld:

ompstart --profile mijn-profiel

is functioneel gelijk aan:

omp --profile mijn-profiel

nadat de twee update-stappen zijn uitgevoerd.

Vereisten

Het script verwacht:

  • een POSIX-achtige shell met Bash;
  • Homebrew met de opdracht brew in PATH;
  • Oh My Pi met de opdracht omp in PATH;
  • een werkende internetverbinding voor de updates.

Homebrew is beschikbaar op zowel Linux als macOS. De locatie van Homebrew verschilt per platform, maar dat is geen probleem zolang de installatie de juiste locatie aan PATH toevoegt.

Installatie

Clone de repository naar een geschikte map:

git clone https://git.eddydevink.nl/eddy/starting-omp.git
cd starting-omp

Maak het script uitvoerbaar:

chmod +x ompstart

Beschikbaar maken als gebruikerscommando

De aanbevolen locatie voor een persoonlijke installatie op Linux en macOS is ~/bin:

mkdir -p "$HOME/bin"
ln -s "$PWD/ompstart" "$HOME/bin/ompstart"

Voeg ~/bin eenmalig toe aan PATH.

Voor Bash, bijvoorbeeld in ~/.profile:

export PATH="$HOME/bin:$PATH"

Voor Zsh, de standaard shell op recente macOS-versies, bijvoorbeeld in ~/.zprofile:

export PATH="$HOME/bin:$PATH"

Start daarna een nieuwe shell of laad de configuratie opnieuw:

exec "$SHELL" -l

Controleer de installatie:

command -v ompstart

Daarna kan het programma overal worden gestart met:

ompstart

Beschikbaar maken voor alle gebruikers

Wil je het commando voor alle gebruikers beschikbaar maken, plaats dan een symlink in /usr/local/bin:

sudo -A ln -s "$PWD/ompstart" /usr/local/bin/ompstart

Daarvoor zijn beheerdersrechten nodig. Voor persoonlijk gebruik heeft ~/bin de voorkeur: daarvoor zijn geen beheerdersrechten nodig en de installatie blijft onafhankelijk van Homebrew-beheer.

Foutafhandeling

Het script gebruikt:

set -euo pipefail

Daarmee geldt:

  • als brew ontbreekt, stopt het script met foutcode 127;
  • als omp ontbreekt, stopt het script met foutcode 127;
  • als brew upgrade -y mislukt, wordt omp update niet uitgevoerd;
  • als omp update mislukt, wordt de toepassing niet gestart;
  • alleen na een succesvolle update wordt het normale omp gestart.

Er wordt bewust geen fallback of gedeeltelijke start uitgevoerd. Zo wordt voorkomen dat omp na een mislukte update in een onduidelijke toestand wordt gestart.

Script

De volledige implementatie staat in ompstart:

#!/usr/bin/env bash
set -euo pipefail

if ! command -v brew >/dev/null 2>&1; then
    printf 'Fout: brew is niet gevonden in PATH.\n' >&2
    exit 127
fi

if ! command -v omp >/dev/null 2>&1; then
    printf 'Fout: omp is niet gevonden in PATH.\n' >&2
    exit 127
fi

# Run the upgrade without asking for confirmation.
brew upgrade -y
omp update
exec omp "$@"

Gebruik

Normaal starten:

ompstart

Argumenten doorgeven aan omp:

ompstart --help
ompstart --profile mijn-profiel

De argumenten worden niet gebruikt door brew upgrade of omp update; ze worden uitsluitend doorgegeven aan het uiteindelijke omp-proces.

Onderhoud

De repository bevat geen eigen afhankelijkheden of buildstap. Wijzigingen aan het script kunnen direct worden getest met:

bash -n ompstart

Controleer daarnaast of het bestand uitvoerbaar is:

test -x ompstart && echo 'uitvoerbaar'

Licentie

Er is momenteel geen aparte licentie aan deze kleine persoonlijke wrapper gekoppeld.