MCPcopy
hub / github.com/matryer/xbar / run

Function run

tools/sitegen/main.go:37–239  ·  view source on GitHub ↗
(ctx context.Context, args []string)

Source from the content-addressed store, hash-verified

35}
36
37func run(ctx context.Context, args []string) error {
38 rand.Seed(time.Now().UnixNano())
39 fmt.Println("xbarapp.com site generator", version)
40 flags := flag.NewFlagSet(args[0], flag.ContinueOnError)
41 var (
42 out = flags.String("out", "../../xbarapp.com/public/docs", "output folder")
43 small = flags.Bool("small", false, "run only a small sample (default is to process all)")
44 skipdata = flags.Bool("skipdata", false, "skip the data - just render the index template")
45 errs = flags.Bool("errs", false, "print out error details")
46 nodocs = flags.Bool("nodocs", false, "skip docs generation")
47 )
48 if err := flags.Parse(args[1:]); err != nil {
49 return err
50 }
51 if err := os.RemoveAll(*out); err != nil {
52 return err
53 }
54 g, err := newGenerator(*out)
55 if err != nil {
56 return err
57 }
58 var categoriesLock sync.Mutex // protects categories
59 categories := make(map[string]metadata.Category)
60 var plugins []metadata.Plugin
61 pluginsByPath := make(map[string][]metadata.Plugin)
62 var allPlugins []metadata.Plugin
63 moonCycleIndex := 0
64 eachPlugin := EachFunc(func(plugin metadata.Plugin) {
65 categoriesLock.Lock()
66 plugins = append(plugins, plugin)
67 metadata.CategoryEnsurePath(categories, nil, plugin.PathSegments)
68 allPlugins = append(allPlugins, plugin)
69 categoriesLock.Unlock()
70 moonCycleIndex, err = moonCycle.Print(os.Stdout, moonCycleIndex)
71 if err != nil {
72 log.Println(err)
73 }
74 })
75 reader := &RepoReader{
76 RepoOwner: "matryer",
77 RepoName: "xbar-plugins",
78 EachPluginFn: eachPlugin,
79 GitHubAccessToken: os.Getenv("XBAR_GITHUB_ACCESS_TOKEN"),
80 SmallSample: *small,
81 PrintErrors: *errs,
82 }
83 if !*skipdata {
84 if err := reader.All(ctx); err != nil {
85 return err
86 }
87 } else {
88 metadata.CategoryEnsurePath(categories, nil, []string{"Parent"})
89 metadata.CategoryEnsurePath(categories, nil, []string{"Parent", "Child"})
90 metadata.CategoryEnsurePath(categories, nil, []string{"One"})
91 metadata.CategoryEnsurePath(categories, nil, []string{"Two"})
92 metadata.CategoryEnsurePath(categories, nil, []string{"Three"})
93 plugins = []metadata.Plugin{
94 {

Callers 1

mainFunction · 0.70

Calls 15

AllMethod · 0.95
DownloadImagesMethod · 0.95
newGeneratorFunction · 0.85
EachFuncFuncType · 0.85
generateDocsFunction · 0.85
StringMethod · 0.80
PrintMethod · 0.80
mkdirallMethod · 0.80
generateCategoryPagesMethod · 0.80

Tested by

no test coverage detected