freedom-init
freedom-init is een professionele, cross-platform Go-module voor de volledige initialisatie van desktopapplicaties. De module automatiseert het opzetten van de mappenstructuur, het kopiëren van iconen en het genereren van systeem-snelkoppelingen voor zowel Linux als Windows [1, 2].
🚀 Kernfunctionaliteiten
- Pad-detectie: Bepaalt het absolute pad naar de actieve executable of het hoofdscript [2, 3].
- Mappenstructuur: Creëert de noodzakelijke datamappen conform de officiële systeempaden (bijv.
~/.local/share op Linux of AppData/Local op Windows) [2, 4, 5].
- Asset Management: Kopieert het applicatie-icoon (.png) automatisch van de bronlocatie naar de juiste systeemmappen [2, 6].
- Systeemintegratie:
- Linux: Genereert een
.desktop bestand in het applicatiemenu en markeert dit als vertrouwd via gio [2, 7].
- Windows: Maakt een snelkoppeling (
.lnk) in het Startmenu aan via PowerShell-automatisering [2, 8].
- Beveiliging: Bevat strikte foutafhandeling en controleert via een fysiek testbestand (
.write_test) of de doelmap daadwerkelijk beschrijfbaar is [6, 9].
📦 Installatie
Voeg de module toe aan je Go-project:
go get codeberg.org/Go_modules/freedom-init
Beschikbare categorien voor freedominit.
AudioVideo Category = "AudioVideo"
Education Category = "Education"
Development Category = "Development"
Game Category = "Game"
Graphics Category = "Graphics"
Network Category = "Network"
Office Category = "Office"
Science Category = "Sience"
Settings Category = "Settings"
System Category = "System"
Utility Category = "Utility"
🛠 Gebruik
Importeer de module en roep de Start-functie aan bij het opstarten van je applicatie.
package main
import (
"fmt"
"log"
"codeberg.org/Go_modules/freedom-init"
)
func main() {
// Initialiseer de applicatie
// "MijnApp" = de naam van de applicatie
// freedominit.Office = de categorie voor het Linux menu
err := freedominit.Start("MijnApp", freedominit.Office)
if err != nil {
log.Fatalf("Initialisatiefout: %v", err)
}
// GEBRUIK: SystemPath is nu gevuld en overal in je code bruikbaar
fmt.Println("De applicatie gebruikt dit pad voor data:", freedominit.SystemPath)
}
🌍 Globaal Gebruik van SystemPath
Zodra Start() succesvol is aangeroepen, wordt het resulterende pad opgeslagen in de variabele SystemPath. Dit pad is de standaardlocatie voor het opslaan van databases en configuratiebestanden, wat garandeert dat applicatiedata altijd op de officieel voorgeschreven plek van het besturingssysteem staat.
📂 Systeempadenoverzicht
Onderdeel
Linux Locatie
Windows Locatie
SystemPath
~/.local/share/{appName}
AppData\Local{appName}
Menu Snelkoppeling
~/.local/share/applications/{appName}.desktop
Start Menu\Programs{appName}{appName}.lnk
Icoon
~/.local/share/icons/{appName}.png
Gekoppeld aan .lnk
Opmerking: Mac OS wordt op dit moment niet ondersteund en geeft een duidelijke foutmelding.
🧹 De-installatie
De module bevat een ingebouwde opschoonfunctie om alle aangemaakte bestanden en mappen volledig te verwijderen.
err := freedominit.Uninstall("MijnApp")