Add new os-release module

This commit is contained in:
Gerald Pinder
2025-05-19 18:44:36 -04:00
parent 63083eb1cd
commit 8c4a2d3a35
6 changed files with 66 additions and 2 deletions

View File

@@ -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
}

View File

@@ -5,6 +5,12 @@ base-image: ghcr.io/ublue-os/kinoite-main
image-version: 42 image-version: 42
description: The image of Wunker OS for CP's laptop. description: The image of Wunker OS for CP's laptop.
modules: modules:
- type: os-release
source: local
properties:
NAME: WunkerOS
ID: wunker_os
PRETTY_NAME: Wunker OS for Framework 13
- type: dnf - type: dnf
repos: repos:
copr: copr:

View File

@@ -19,6 +19,12 @@ nushell-version: none
# # ref: db13eea91c15ca57d76454432d1fb9c09c51ba8c # Last known working commit # # ref: db13eea91c15ca57d76454432d1fb9c09c51ba8c # Last known working commit
# ref: 605bb63a4de640b77f6d3017238ece48cb286933 # supposed fix # ref: 605bb63a4de640b77f6d3017238ece48cb286933 # supposed fix
modules: 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/jp-desktop.yml
# - from-file: common/cosmic.yml # - from-file: common/cosmic.yml
# - from-file: common/helix.yml # - from-file: common/helix.yml

View File

@@ -8,6 +8,12 @@ description: The image of Wunker OS for JP's Laptop.
# stages: # stages:
# - from-file: common/helix.yml # - from-file: common/helix.yml
modules: 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/jp-laptop.yml
- from-file: common/cosmic.yml - from-file: common/cosmic.yml
# - from-file: common/helix.yml # - from-file: common/helix.yml

View File

@@ -4,8 +4,14 @@ name: jp-minis-server
# base-image: ghcr.io/ublue-os/kinoite-nvidia # base-image: ghcr.io/ublue-os/kinoite-nvidia
base-image: ghcr.io/ublue-os/base-main base-image: ghcr.io/ublue-os/base-main
image-version: 42 image-version: 42
description: The image of Wunker OS for JP's Minisforum PCs. description: The image of Wunker OS for RKE2 Server
modules: modules:
- type: os-release
source: local
properties:
NAME: WunkerOS
ID: wunker_os
PRETTY_NAME: Wunker OS RKE2 Server
- from-file: common/jp-minis.yml - from-file: common/jp-minis.yml
- type: files - type: files
files: files:

View File

@@ -4,8 +4,14 @@ name: jp-minis-worker
# base-image: ghcr.io/ublue-os/kinoite-nvidia # base-image: ghcr.io/ublue-os/kinoite-nvidia
base-image: ghcr.io/ublue-os/base-main base-image: ghcr.io/ublue-os/base-main
image-version: 42 image-version: 42
description: The image of Wunker OS for JP's Minisforum PCs. description: The image of Wunker OS for RKE2 Worker
modules: modules:
- type: os-release
source: local
properties:
NAME: WunkerOS
ID: wunker_os
PRETTY_NAME: Wunker OS RKE2 Worker
- from-file: common/jp-minis.yml - from-file: common/jp-minis.yml
- type: script - type: script
snippets: snippets: