various updates
This commit is contained in:
@@ -44,6 +44,10 @@ FLATPAKS=(
|
|||||||
"io.github.anil_e.Codd"
|
"io.github.anil_e.Codd"
|
||||||
"org.gnome.DejaDup"
|
"org.gnome.DejaDup"
|
||||||
"com.rustdesk.RustDesk"
|
"com.rustdesk.RustDesk"
|
||||||
|
"io.github.tanaybhomia.Whisp"
|
||||||
|
"org.pipewire.Helvum"
|
||||||
|
"com.jeffser.Alpaca"
|
||||||
|
"ai.lmstudio.lm-studio"
|
||||||
)
|
)
|
||||||
|
|
||||||
for pak in "${FLATPAKS[@]}"; do
|
for pak in "${FLATPAKS[@]}"; do
|
||||||
|
|||||||
@@ -24,16 +24,13 @@ SYSTEM_UTILS=(
|
|||||||
lazydocker
|
lazydocker
|
||||||
lazygit
|
lazygit
|
||||||
libyaml
|
libyaml
|
||||||
lmstudio-bin
|
|
||||||
lsd
|
lsd
|
||||||
lsof
|
lsof
|
||||||
man
|
man
|
||||||
mc
|
mc
|
||||||
mtr
|
mtr
|
||||||
neofetch
|
|
||||||
nerdfetch
|
nerdfetch
|
||||||
net-tools
|
net-tools
|
||||||
net-tools
|
|
||||||
networkmanager
|
networkmanager
|
||||||
nmap
|
nmap
|
||||||
nss-mdns
|
nss-mdns
|
||||||
@@ -90,7 +87,6 @@ DEV_TOOLS=(
|
|||||||
|
|
||||||
# System maintenance
|
# System maintenance
|
||||||
MAINTENANCE=(
|
MAINTENANCE=(
|
||||||
alpaca-ai
|
|
||||||
gnome-disk-utility
|
gnome-disk-utility
|
||||||
gnome-extra
|
gnome-extra
|
||||||
gnome-keyring
|
gnome-keyring
|
||||||
|
|||||||
@@ -3,10 +3,12 @@
|
|||||||
|
|
||||||
# Pacman / AUR packages to remove (works for both pacman and yay packages)
|
# Pacman / AUR packages to remove (works for both pacman and yay packages)
|
||||||
REMOVE_PACMAN=(
|
REMOVE_PACMAN=(
|
||||||
# none at this time
|
alpaca-ai
|
||||||
|
lmstudio-bin
|
||||||
|
neofetch
|
||||||
)
|
)
|
||||||
|
|
||||||
# Flatpak applications to remove
|
# Flatpak applications to remove
|
||||||
REMOVE_FLATPAKS=(
|
REMOVE_FLATPAKS=(
|
||||||
"com.jeffser.Alpaca"
|
# none at this time
|
||||||
)
|
)
|
||||||
|
|||||||
90
skills/sibling-project-updates.md
Normal file
90
skills/sibling-project-updates.md
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
# Skill: Supporting the updates.d Update Architecture in a Sibling Project
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
CoreDesktop's `coreupdate` script sources every `*.sh` file found in
|
||||||
|
`~/.local/share/coredesktop/updates.d/` in filename order. A sibling project
|
||||||
|
hooks into this system by installing a numbered shell script into that directory
|
||||||
|
during its own install step.
|
||||||
|
|
||||||
|
## How It Works
|
||||||
|
|
||||||
|
When a user runs `coreupdate`:
|
||||||
|
|
||||||
|
1. The coredesktop repo at `~/.local/share/coredesktop` is pulled.
|
||||||
|
2. All `*.sh` files in `updates.d/` are **sourced** (not executed as subprocesses)
|
||||||
|
in lexicographic order.
|
||||||
|
3. Each script runs in the same shell context, with access to `$COREDESKTOP` and
|
||||||
|
anything sourced before it (e.g. `utils.sh`).
|
||||||
|
|
||||||
|
Because the scripts are sourced from within the cloned repo directory, any file
|
||||||
|
placed there by a sibling project's installer will **survive `git pull`** — git
|
||||||
|
does not delete untracked files on pull.
|
||||||
|
|
||||||
|
## Naming Convention
|
||||||
|
|
||||||
|
Existing coredesktop hooks use a numeric prefix to control execution order:
|
||||||
|
|
||||||
|
| File | Purpose |
|
||||||
|
|------------------|---------------------|
|
||||||
|
| `10-pacman.sh` | Arch system update |
|
||||||
|
| `20-aur.sh` | AUR packages |
|
||||||
|
| `30-flatpak.sh` | Flatpak apps |
|
||||||
|
| `40-ruby.sh` | Ruby/gems |
|
||||||
|
| `50-bitwarden.sh`| Bitwarden CLI |
|
||||||
|
| `60-pipx.sh` | pipx packages |
|
||||||
|
|
||||||
|
Sibling projects should use **70 or higher** to run after all coredesktop
|
||||||
|
updates complete.
|
||||||
|
|
||||||
|
## What to Add to a Sibling Project
|
||||||
|
|
||||||
|
### 1. Create the hook script
|
||||||
|
|
||||||
|
Add a file like `updates.d/70-myproject.sh` to the sibling repo:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "Updating MyProject..."
|
||||||
|
git -C "$HOME/.local/share/myproject" pull
|
||||||
|
|
||||||
|
# Optional: use coredesktop helpers if needed
|
||||||
|
# source "$COREDESKTOP/utils.sh"
|
||||||
|
# install_packages "${MY_PACKAGES[@]}"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Install the hook during the sibling's install step
|
||||||
|
|
||||||
|
In the sibling's `install.sh`, copy the hook into coredesktop's `updates.d/`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo "Registering MyProject update hook..."
|
||||||
|
cp updates.d/70-myproject.sh ~/.local/share/coredesktop/updates.d/
|
||||||
|
```
|
||||||
|
|
||||||
|
This is a one-time step that wires the sibling into every future `coreupdate`
|
||||||
|
run on the machine.
|
||||||
|
|
||||||
|
## Available Helpers
|
||||||
|
|
||||||
|
Since hooks are sourced in the same shell, they can use any function or variable
|
||||||
|
already defined by earlier scripts. The most useful are in `utils.sh`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
source "$COREDESKTOP/utils.sh"
|
||||||
|
|
||||||
|
# Install pacman packages (skips already-installed ones)
|
||||||
|
install_packages "${MY_PACMAN_PACKAGES[@]}"
|
||||||
|
|
||||||
|
# Remove packages
|
||||||
|
remove_packages "${MY_REMOVE_PACKAGES[@]}"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Checklist for Sibling Project Authors
|
||||||
|
|
||||||
|
- [ ] Create `updates.d/7X-<project>.sh` in the sibling repo
|
||||||
|
- [ ] Hook script echoes its name so progress is visible during `coreupdate`
|
||||||
|
- [ ] Install step copies the hook to `~/.local/share/coredesktop/updates.d/`
|
||||||
|
- [ ] Numeric prefix is 70+ (does not conflict with coredesktop's own hooks)
|
||||||
|
- [ ] Script is idempotent — safe to run multiple times without side effects
|
||||||
Reference in New Issue
Block a user