summaryrefslogtreecommitdiff
path: root/internal/cmd/showcase.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/cmd/showcase.go')
-rw-r--r--internal/cmd/showcase.go57
1 files changed, 57 insertions, 0 deletions
diff --git a/internal/cmd/showcase.go b/internal/cmd/showcase.go
new file mode 100644
index 0000000..e184700
--- /dev/null
+++ b/internal/cmd/showcase.go
@@ -0,0 +1,57 @@
+package cmd
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/spf13/cobra"
+ "codeberg.org/snonux/gitsyncer/internal/cli"
+)
+
+var (
+ forceRegenerate bool
+ outputPath string
+ outputFormat string
+ excludePattern string
+)
+
+var showcaseCmd = &cobra.Command{
+ Use: "showcase",
+ Short: "Generate AI-powered project showcase",
+ Long: `Generate a comprehensive showcase of all your projects using Claude AI.
+This feature creates a formatted document with project summaries, statistics,
+and code snippets.`,
+ Example: ` # Generate showcase with cached summaries
+ gitsyncer showcase
+
+ # Force regeneration of all summaries
+ gitsyncer showcase --force
+
+ # Custom output path
+ gitsyncer showcase --output ~/my-showcase.md
+
+ # Different output format
+ gitsyncer showcase --format markdown
+
+ # Exclude certain repositories
+ gitsyncer showcase --exclude "test-.*"`,
+ Run: func(cmd *cobra.Command, args []string) {
+ flags := buildFlags()
+ flags.Showcase = true
+ flags.Force = forceRegenerate
+
+ fmt.Println("Running showcase generation for all repositories...")
+ exitCode := cli.HandleShowcaseOnly(cfg, flags)
+ os.Exit(exitCode)
+ },
+}
+
+func init() {
+ rootCmd.AddCommand(showcaseCmd)
+
+ // Showcase flags
+ showcaseCmd.Flags().BoolVarP(&forceRegenerate, "force", "f", false, "force regeneration of cached summaries")
+ showcaseCmd.Flags().StringVarP(&outputPath, "output", "o", "", "custom output path (default: ~/git/foo.zone-content/gemtext/about/showcase.gmi.tpl)")
+ showcaseCmd.Flags().StringVar(&outputFormat, "format", "gemtext", "output format: gemtext, markdown, html")
+ showcaseCmd.Flags().StringVar(&excludePattern, "exclude", "", "exclude repos matching pattern")
+} \ No newline at end of file