first commit
This commit is contained in:
commit
7584207f76
72 changed files with 12801 additions and 0 deletions
119
example-usage.go
Normal file
119
example-usage.go
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/deb-bootc-image-builder/bib/internal/config"
|
||||
)
|
||||
|
||||
// This is an example of how the configuration system would be used
|
||||
// in the actual debian-bootc-image-builder application
|
||||
|
||||
func main() {
|
||||
// Load configuration from the default location
|
||||
cfg, err := config.LoadConfig("")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to load configuration: %v", err)
|
||||
}
|
||||
|
||||
// Example 1: Get the active registry information
|
||||
registry, err := cfg.GetActiveRegistry()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to get active registry: %v", err)
|
||||
}
|
||||
fmt.Printf("Active registry: %s (%s)\n", cfg.ActiveRegistry, registry.Description)
|
||||
fmt.Printf("Base URL: %s\n", registry.BaseURL)
|
||||
fmt.Printf("Namespace: %s\n", registry.Namespace)
|
||||
fmt.Printf("Auth required: %v\n", registry.AuthRequired)
|
||||
|
||||
// Example 2: Generate container names
|
||||
bootcBaseName, err := cfg.GetBootcBaseName("stable")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate bootc base name: %v", err)
|
||||
}
|
||||
fmt.Printf("Bootc base container: %s\n", bootcBaseName)
|
||||
|
||||
bootcBuilderName, err := cfg.GetBootcBuilderName("latest")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate bootc builder name: %v", err)
|
||||
}
|
||||
fmt.Printf("Bootc builder container: %s\n", bootcBuilderName)
|
||||
|
||||
// Example 3: Get Debian version mapping
|
||||
actualVersion, err := cfg.GetDebianVersion("stable")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to get Debian version: %v", err)
|
||||
}
|
||||
fmt.Printf("Debian stable maps to: %s\n", actualVersion)
|
||||
|
||||
// Example 4: Get default settings
|
||||
fmt.Printf("Default Debian version: %s\n", cfg.Defaults.DebianVersion)
|
||||
fmt.Printf("Default image types: %v\n", cfg.Defaults.ImageTypes)
|
||||
fmt.Printf("Default output directory: %s\n", cfg.Defaults.OutputDir)
|
||||
fmt.Printf("Default rootfs type: %s\n", cfg.Defaults.RootfsType)
|
||||
|
||||
// Example 5: Check experimental features
|
||||
fmt.Printf("Cross-arch support enabled: %v\n", cfg.IsExperimentalFeatureEnabled("cross_arch"))
|
||||
fmt.Printf("Librepo support enabled: %v\n", cfg.IsExperimentalFeatureEnabled("librepo"))
|
||||
|
||||
// Example 6: Get repository information
|
||||
mainRepoURL, err := cfg.GetRepositoryURL("main")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to get main repository URL: %v", err)
|
||||
}
|
||||
fmt.Printf("Main repository URL: %s\n", mainRepoURL)
|
||||
fmt.Printf("Main repository priority: %d\n", cfg.GetRepositoryPriority("main"))
|
||||
|
||||
// Example 7: Get build settings
|
||||
fmt.Printf("Container size multiplier: %d\n", cfg.Build.ContainerSizeMultiplier)
|
||||
fmt.Printf("Minimum rootfs size: %d GB\n", cfg.Build.MinRootfsSizeGB)
|
||||
|
||||
// Example 8: Get cloud settings
|
||||
fmt.Printf("Default AWS region: %s\n", cfg.Cloud.AWS.DefaultRegion)
|
||||
fmt.Printf("S3 bucket template: %s\n", cfg.Cloud.AWS.BucketTemplate)
|
||||
|
||||
// Example 9: Get logging settings
|
||||
fmt.Printf("Log level: %s\n", cfg.Logging.Level)
|
||||
fmt.Printf("Log format: %s\n", cfg.Logging.Format)
|
||||
fmt.Printf("Verbose mode: %v\n", cfg.Logging.Verbose)
|
||||
|
||||
// Example 10: Get security settings
|
||||
fmt.Printf("Require HTTPS: %v\n", cfg.Security.RequireHTTPS)
|
||||
fmt.Printf("Verify TLS: %v\n", cfg.Security.VerifyTLS)
|
||||
fmt.Printf("Allow insecure: %v\n", cfg.Security.AllowInsecure)
|
||||
}
|
||||
|
||||
// Example of how this would be integrated into the main application:
|
||||
|
||||
func exampleIntegration() {
|
||||
// Load configuration
|
||||
cfg, err := config.LoadConfig("")
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to load configuration: %v", err)
|
||||
}
|
||||
|
||||
// Use configuration in the build process
|
||||
imgref, err := cfg.GetBootcBaseName(cfg.Defaults.DebianVersion)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to generate image reference: %v", err)
|
||||
}
|
||||
|
||||
// Use default settings
|
||||
outputDir := cfg.Defaults.OutputDir
|
||||
imageTypes := cfg.Defaults.ImageTypes
|
||||
rootfsType := cfg.Defaults.RootfsType
|
||||
|
||||
// Check experimental features
|
||||
useLibrepo := cfg.IsExperimentalFeatureEnabled("librepo")
|
||||
crossArch := cfg.IsExperimentalFeatureEnabled("cross_arch")
|
||||
|
||||
fmt.Printf("Building image: %s\n", imgref)
|
||||
fmt.Printf("Output directory: %s\n", outputDir)
|
||||
fmt.Printf("Image types: %v\n", imageTypes)
|
||||
fmt.Printf("Rootfs type: %s\n", rootfsType)
|
||||
fmt.Printf("Use librepo: %v\n", useLibrepo)
|
||||
fmt.Printf("Cross-arch: %v\n", crossArch)
|
||||
|
||||
// The actual build process would continue here...
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue