Narzędzie do budowy dystrybucji LegendaryOS — Linuksa bazującego na
HackerOS, z własnym
logotypem/brandingiem, ale tą samą filozofią narzędziową: konfiguracja
w formacie .hk, hooki w Hacker Lang (.hl), a pod spodem zwykły
Debianowy live-build — LegendaryOS-Builder jest jego nakładką
(wrapperem), nie zamiennikiem.
Napisane w H# (język ekosystemu HackerOS) i budowane przez bytes
(H# Package Manager). Korzysta z biblioteki
git (hgit) do wszystkich
operacji na obiektach Gita używanych do wersjonowania lokalnej kopii
bazy HackerOS.
LegendaryOS to w praktyce HackerOS z innym logotypem/brandingiem i
własnym zestawem edycji/hooków — nie forek kodu HackerOS, tylko warstwa
budowana na nim. legendaryos-builder sync-base utrzymuje lokalną,
wersjonowaną kopię drzewa HackerOS-Linux-System/HackerOS (gałąź z
config.hk → [release] → base-ref, domyślnie official), a
legendaryos-builder build łączy tę bazę z brandingiem/hookami/plikami
Twojego projektu w jedną nakładkę live-build.
|
Note
|
hgit (biblioteka git tego ekosystemu) celowo nie ma
transportu sieciowego — klonuje wyłącznie ze ścieżki lokalnej (patrz
git README, sekcja "Known limitations"). sync-base robi więc
dokładnie jedną rzecz przez systemowy git — pierwsze pobranie/
odświeżenie lokalnego lustra — a każda kolejna operacja (kopia robocza
per-build, log zmian) idzie już wyłącznie przez hgit.
|
Wymagania:
-
h#— kompilator H# (https://github.com/HackerOS-Linux-System/H-Sharp) -
bytes— H# Package Manager (https://github.com/HackerOS-Linux-System/bytes) -
hl— interpreter Hacker Lang (część HackerOS) -
live-build(pakietlive-buildz repozytoriów Debiana) -
git(tylko do jednorazowegosync-base— patrz wyżej)
git clone https://github.com/HackerOS-Linux-System/LegendaryOS-Builder.git
cd LegendaryOS-Builder
hl build.hlbuild.hl uruchamia bytes install (ściąga git/hgit z [deps] w
Bytes.hk), bytes build --release, i instaluje binarkę do
/usr/bin/legendaryos-builder.
legendaryos-builder new moj-projekt
cd moj-projekt
# podmień pliki w branding/ na docelową grafikę
# uzupełnij user.hk (organizacja + token)
legendaryos-builder validate .
legendaryos-builder sync-base
legendaryos-builder build .Gotowe ISO ląduje w build/config/ wewnątrz projektu.
Pełny, gotowy do wglądu przykład (z realną, choć minimalną grafiką)
znajduje się w examples/legendaryos-demo/.
moj-projekt/
├── branding/
│ ├── banner.png
│ ├── logo-bg.jpg
│ ├── logo-bg.png
│ ├── logo.png
│ └── notext-bg.png
├── scripts/
│ └── *.hl <- WYŁĄCZNIE Hacker Lang, żadnego shella
├── files/ <- nakładka "after packages"
├── build.hl <- kroki budowy (Hacker Lang)
├── config.hk <- metadane projektu/wydania
└── user.hk <- organizacja + tokenPełny opis każdego elementu, wraz z uzasadnieniem (dlaczego akurat te
pliki brandingu, dlaczego user.hk jest osobnym plikiem od config.hk
itd.) jest w docs/STRUKTURA.md.
legendaryos-builder validate <ścieżka> sprawdza całą strukturę na raz
i wypisuje listę wszystkich braków (błędy) oraz ostrzeżeń (np. pusty
token w user.hk) — build jest blokowany wyłącznie przez błędy, nie
przez ostrzeżenia.
Wysokopoziomowe:
| Komenda | Opis |
|---|---|
|
Utwórz szkielet nowego projektu (z realną, minimalną grafiką w |
|
Zwaliduj strukturę projektu (domyślnie bieżący katalog). |
|
Zsynchronizuj lokalną bazę HackerOS (patrz "Relacja z HackerOS" wyżej). |
|
Pełny build: |
|
Usuń katalog |
|
Pokaż wersję. |
|
Pomoc. |
Niskopoziomowe (pojedyncze etapy — wołane też z wewnątrz build.hl
projektu, patrz scripts::create w src/scaffold.h#):
| Komenda | Opis |
|---|---|
|
Złóż nakładkę |
|
Uruchom |
|
|
|
|
[deps]
-> git => https://github.com/HackerOS-Linux-System/git.gitgit (moduł importowany jako hgit, patrz use "hlib → hgit" from
"hgit") to implementacja Gita napisana w 100% w H#, używana przez
src/gitsync.h# do wersjonowania lokalnej kopii bazy HackerOS.
user.hk to jedyny plik z sekretem ([auth] → token) — celowo osobny
od config.hk, żeby dało się go trzymać poza kontrolą wersji bez
mieszania w to reszty metadanych projektu. legendaryos-builder new
od razu dopisuje user.hk do wygenerowanego .gitignore. Nigdy nie
commituj user.hk z wypełnionym tokenem.
MIT — patrz LICENSE.