feat: added install logic

This commit is contained in:
FernandoJVideira committed 2026-01-29 22:17:11 +00:00
1 parent 5e31fc2f23
commit 9d745785ed
9 files changed
+134 -18

No files matched your search

+68
View File
@@ -0,0 +1,68 @@
package main
import (
"archive/zip"
"fmt"
"os"
"path/filepath"
"strings"
)
func main() {
if len(os.Args) != 3 {
fmt.Println("usage: create_zip <source_dir> <output_zip>")
os.Exit(1)
}
sourceDir := os.Args[1]
outputZip := os.Args[2]
outFile, err := os.Create(outputZip)
if err != nil {
panic(err)
}
defer outFile.Close()
w := zip.NewWriter(outFile)
defer w.Close()
err = filepath.Walk(sourceDir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
return nil // Skip directory entries entirely
}
// Skip hidden files/directories (like .DS_Store)
if strings.HasPrefix(filepath.Base(path), ".") {
return nil
}
// Get path relative to the source directory
relPath, err := filepath.Rel(sourceDir, path)
if err != nil {
return err
}
// Ensure forward slashes for zip spec compliance
relPath = filepath.ToSlash(relPath)
// Create file in zip
f, err := w.Create(relPath)
if err != nil {
return err
}
// Write content
fileContent, err := os.ReadFile(path)
if err != nil {
return err
}
_, err = f.Write(fileContent)
return err
})
if err != nil {
panic(err)
}
}