GitRoot

Craft your forge, Build your project, Grow your community freely
 1// SPDX-FileCopyrightText: 2026 Romain Maneschi <romain@gitroot.dev>
 2//
 3// SPDX-License-Identifier: EUPL-1.2
 4
 5package main
 6
 7import (
 8	"fmt"
 9	"os"
10	"path/filepath"
11)
12
13var fileToIgnore = []string{"/model/fs.go", "/model/server.go", "/server.go", "/ptr.go", "/test/fakeserver.go", "/model/plugin.go"}
14
15func main() {
16	fromDir := "."
17	if len(os.Args) > 1 {
18		fromDir = os.Args[1]
19	}
20	fromDir = filepath.Clean(fromDir)
21
22	generate := Parse(fromDir)
23
24	toDir := "./generate"
25	if len(os.Args) > 2 {
26		toDir = os.Args[2]
27	}
28	toDir = filepath.Clean(toDir)
29
30	if err := generate.Execute(toDir, func(filepath string, filecontent string) {
31		os.WriteFile(filepath, []byte(filecontent), os.ModePerm)
32	}); err != nil {
33		fmt.Printf("🛑 Can't generate: %v\n", err)
34	}
35}