Files
ansiblings/cubes/network/wifi/connection
Benjamin Diedrichsen 587ff2cf47
Publish snapshot / snapshot (push) Failing after 1m58s
Add release pipeline and upgrade toolchain to TypeScript 7
Publishing infrastructure
- Three Gitea workflows: ci.yml (PRs, non-main pushes), publish-snapshot.yml
  (main -> Gitea under dist-tag @main) and release.yml (tags -> Gitea + npmjs)
- Tag-driven releases as <package-dir>-v<version>; the manifest stays the
  source of truth and release.yml refuses to run if tag and manifest disagree
- Every publish is idempotent: each step checks the registry first, so a run
  that fails on the second registry can simply be re-run
- Hard coverage gate (85% branches) shared by CI, the pre-push hook and local
  runs, since the thresholds live in vitest.config.ts rather than a CI flag
- README.PUBLISH.md documents the whole mechanism

Toolchain
- TypeScript 7 native compiler; drop tsgo and ts-node, use tsx for dev runs
- Biome 1.9 -> 2.x, Vitest 1 -> 4, zod 3 -> 4, inquirer 8 -> 14, pnpm 11.17.0
- Replace inquirer-checkbox-plus-prompt, which is peer-capped at inquirer <9,
  with enquirer's AutoComplete; the CubeSelection contract is unchanged
- Stand in for zod 4's removed z.AnyZodObject with a local AnyObjectSchema

Repo hygiene
- Stop tracking dist/; ignore coverage/, *.tsbuildinfo, .npmrc* and release.json
- Drop package-lock.json in favour of pnpm-lock.yaml

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-27 15:17:14 +02:00
..
2026-07-27 13:09:00 +02:00
2026-07-27 13:09:00 +02:00

network:wifi:connection

Configure a WiFi client connection using NetworkManager

Purpose

This cube allows you to connect your target host (e.g., a Raspberry Pi or a laptop) to an existing WiFi network using nmcli.

What This Cube Does

  1. Ensures network-manager is installed and running
  2. Removes any existing connection with the same name to avoid conflicts
  3. Connects to the specified SSID using the provided PASSWORD
  4. Configures the connection to automatically connect on boot (optional)

Configuration

Variable Type Description Required Default
SSID string The WiFi network name Yes -
PASSWORD string The WiFi password Yes -
AUTOCONNECT boolean Automatically connect to this network No true
CONNECTION_NAME string Name for the connection in NetworkManager No SSID

Dependencies

  • apt/essentials: Basic system utilities.

Usage

Simple Connection

nopy install network:wifi:connection --env SSID="MyHomeWiFi" --env PASSWORD="mysecurepassword"

Connection with Custom Name and No Autoconnect

nopy install network:wifi:connection --env SSID="OfficeWiFi" --env PASSWORD="password123" --env CONNECTION_NAME="Work" --env AUTOCONNECT=false

Security Notes

  • WiFi passwords will be stored in /etc/NetworkManager/system-connections/ on the target host.
  • Passing passwords via --env may leave them in your local shell history.

Troubleshooting

You can check the status of your WiFi connections on the target host with:

nmcli connection show
nmcli device status