From 8c4a2d3a35faae6b06acddb1cb8ce71fb973d42e Mon Sep 17 00:00:00 2001 From: Gerald Pinder <4626052+gmpinder@users.noreply.github.com> Date: Mon, 19 May 2025 18:44:36 -0400 Subject: [PATCH] Add new os-release module --- modules/os-release/os-release.nu | 34 ++++++++++++++++++++++++++++++++ recipes/cp-laptop.yml | 6 ++++++ recipes/jp-desktop-nvidia.yml | 6 ++++++ recipes/jp-laptop.yml | 6 ++++++ recipes/jp-minis-server.yml | 8 +++++++- recipes/jp-minis-worker.yml | 8 +++++++- 6 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 modules/os-release/os-release.nu diff --git a/modules/os-release/os-release.nu b/modules/os-release/os-release.nu new file mode 100644 index 0000000..4cd0ce9 --- /dev/null +++ b/modules/os-release/os-release.nu @@ -0,0 +1,34 @@ +#!/usr/bin/env nu + +def main [config: string]: nothing -> nothing { + let config = $config + | from json + | default {} properties + mut os_release = open --raw /etc/os-release + | lines + | parse '{key}={value}' + | transpose --ignore-titles -dr + | str trim -c '"' + | str trim -c "'" + print $'(ansi green)Original release:(ansi reset)' + print $os_release + + for $item in ($config.properties | transpose key value) { + if $item.key in $os_release { + print $'(ansi green)Updating (ansi cyan)($item.key)(ansi green) with value (ansi yellow)($item.value)(ansi reset)' + $os_release = $os_release | update $item.key $item.value + } else { + print $'(ansi green)Adding (ansi cyan)($item.key)(ansi green) with value (ansi yellow)($item.value)(ansi reset)' + $os_release = $os_release | insert $item.key $item.value + } + } + + print $'(ansi green)New release:(ansi reset)' + print $os_release + + $os_release + | transpose key value + | each { $'($in.key)="($in.value)"' } + | str join "\n" + | save --force /etc/os-release +} diff --git a/recipes/cp-laptop.yml b/recipes/cp-laptop.yml index 3fe98b7..843f95f 100644 --- a/recipes/cp-laptop.yml +++ b/recipes/cp-laptop.yml @@ -5,6 +5,12 @@ base-image: ghcr.io/ublue-os/kinoite-main image-version: 42 description: The image of Wunker OS for CP's laptop. modules: + - type: os-release + source: local + properties: + NAME: WunkerOS + ID: wunker_os + PRETTY_NAME: Wunker OS for Framework 13 - type: dnf repos: copr: diff --git a/recipes/jp-desktop-nvidia.yml b/recipes/jp-desktop-nvidia.yml index 5340936..609b9e9 100644 --- a/recipes/jp-desktop-nvidia.yml +++ b/recipes/jp-desktop-nvidia.yml @@ -19,6 +19,12 @@ nushell-version: none # # ref: db13eea91c15ca57d76454432d1fb9c09c51ba8c # Last known working commit # ref: 605bb63a4de640b77f6d3017238ece48cb286933 # supposed fix modules: + - type: os-release + source: local + properties: + NAME: WunkerOS + ID: wunker_os + PRETTY_NAME: Wunker OS for Nvidia - from-file: common/jp-desktop.yml # - from-file: common/cosmic.yml # - from-file: common/helix.yml diff --git a/recipes/jp-laptop.yml b/recipes/jp-laptop.yml index 27af223..071e6f0 100644 --- a/recipes/jp-laptop.yml +++ b/recipes/jp-laptop.yml @@ -8,6 +8,12 @@ description: The image of Wunker OS for JP's Laptop. # stages: # - from-file: common/helix.yml modules: + - type: os-release + source: local + properties: + NAME: WunkerOS + ID: wunker_os + PRETTY_NAME: Wunker OS for Framework 16 - from-file: common/jp-laptop.yml - from-file: common/cosmic.yml # - from-file: common/helix.yml diff --git a/recipes/jp-minis-server.yml b/recipes/jp-minis-server.yml index 382afd6..7c0cc4b 100644 --- a/recipes/jp-minis-server.yml +++ b/recipes/jp-minis-server.yml @@ -4,8 +4,14 @@ name: jp-minis-server # base-image: ghcr.io/ublue-os/kinoite-nvidia base-image: ghcr.io/ublue-os/base-main image-version: 42 -description: The image of Wunker OS for JP's Minisforum PCs. +description: The image of Wunker OS for RKE2 Server modules: + - type: os-release + source: local + properties: + NAME: WunkerOS + ID: wunker_os + PRETTY_NAME: Wunker OS RKE2 Server - from-file: common/jp-minis.yml - type: files files: diff --git a/recipes/jp-minis-worker.yml b/recipes/jp-minis-worker.yml index 7c7b025..b1dcef7 100644 --- a/recipes/jp-minis-worker.yml +++ b/recipes/jp-minis-worker.yml @@ -4,8 +4,14 @@ name: jp-minis-worker # base-image: ghcr.io/ublue-os/kinoite-nvidia base-image: ghcr.io/ublue-os/base-main image-version: 42 -description: The image of Wunker OS for JP's Minisforum PCs. +description: The image of Wunker OS for RKE2 Worker modules: + - type: os-release + source: local + properties: + NAME: WunkerOS + ID: wunker_os + PRETTY_NAME: Wunker OS RKE2 Worker - from-file: common/jp-minis.yml - type: script snippets: