-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
89 lines (69 loc) · 1.67 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// Copyright © 2023 Bright Zheng <bright.zheng@outlook.com>
// SPDX-License-Identifier: Apache-2.0
package main
import (
"context"
"embed"
"flag"
"fmt"
"io/fs"
"os"
"github.com/brightzheng100/helm-packager/pkg/chartloader"
"github.com/brightzheng100/helm-packager/pkg/chartwriter"
"github.com/brightzheng100/helm-packager/pkg/imageswriter"
"github.com/brightzheng100/helm-packager/pkg/pipeline"
)
//go:embed charts
var embeddedCharts embed.FS
var chartName = flag.String("chart", "robotshop", "Chart name.")
func main() {
flag.Parse()
chartFS, err := fs.Sub(embeddedCharts, fmt.Sprintf("charts/%s", *chartName))
if err != nil {
panic(err)
}
// stdout
stdout(chartFS)
// file
file(chartFS)
}
func stdout(chartFS fs.FS) {
cl := chartloader.NewEmbedChartLoader(chartFS)
cw := chartwriter.NewStdoutChartWriter()
iw := imageswriter.NewStdoutImagesWriter()
ctx := context.Background()
cp := pipeline.NewBuilder(ctx).
WithChartLoader(cl).
WithChartWriter(cw).
WithImagesWriter(iw).
ConfigureChartFilesIncluded(false).
Complete()
err := cp.Process()
if err != nil {
panic(err)
}
}
func file(chartFS fs.FS) {
toDir := "./_charts"
// create folder if needed
if _, err := os.Stat(toDir); os.IsNotExist(err) {
err := os.Mkdir(toDir, 0766)
if err != nil {
panic(err)
}
}
cl := chartloader.NewEmbedChartLoader(chartFS)
cw := chartwriter.NewFileChartWriter(toDir)
iw := imageswriter.NewFileImagesWriter(toDir)
ctx := context.Background()
cp := pipeline.NewBuilder(ctx).
WithChartLoader(cl).
WithChartWriter(cw).
WithImagesWriter(iw).
ConfigureChartFilesIncluded(false).
Complete()
err := cp.Process()
if err != nil {
panic(err)
}
}