summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'cmd')
-rw-r--r--cmd/gitsyncer/main.go69
1 files changed, 48 insertions, 21 deletions
diff --git a/cmd/gitsyncer/main.go b/cmd/gitsyncer/main.go
index f27cff6..d4a3e6f 100644
--- a/cmd/gitsyncer/main.go
+++ b/cmd/gitsyncer/main.go
@@ -6,6 +6,7 @@ import (
"path/filepath"
"codeberg.org/snonux/gitsyncer/internal/cli"
+ "codeberg.org/snonux/gitsyncer/internal/config"
"codeberg.org/snonux/gitsyncer/internal/state"
)
@@ -23,6 +24,15 @@ func saveBatchRunState(flags *cli.Flags) {
}
}
+// runReleaseCheckIfEnabled runs release checking after successful sync operations
+func runReleaseCheckIfEnabled(cfg *config.Config, flags *cli.Flags) {
+ // Run release checks automatically unless disabled
+ if !flags.NoCheckReleases {
+ fmt.Println("\nChecking for missing releases...")
+ cli.HandleCheckReleases(cfg, flags)
+ }
+}
+
func main() {
// Parse command-line flags
flags := cli.ParseFlags()
@@ -102,10 +112,13 @@ func main() {
// Handle sync operation
if flags.SyncRepo != "" {
exitCode := cli.HandleSync(cfg, flags)
- if exitCode == 0 && flags.Showcase {
- showcaseCode := cli.HandleShowcase(cfg, flags)
- if showcaseCode != 0 {
- os.Exit(showcaseCode)
+ if exitCode == 0 {
+ runReleaseCheckIfEnabled(cfg, flags)
+ if flags.Showcase {
+ showcaseCode := cli.HandleShowcase(cfg, flags)
+ if showcaseCode != 0 {
+ os.Exit(showcaseCode)
+ }
}
}
os.Exit(exitCode)
@@ -114,10 +127,13 @@ func main() {
// Handle sync all operation
if flags.SyncAll {
exitCode := cli.HandleSyncAll(cfg, flags)
- if exitCode == 0 && flags.Showcase {
- showcaseCode := cli.HandleShowcase(cfg, flags)
- if showcaseCode != 0 {
- os.Exit(showcaseCode)
+ if exitCode == 0 {
+ runReleaseCheckIfEnabled(cfg, flags)
+ if flags.Showcase {
+ showcaseCode := cli.HandleShowcase(cfg, flags)
+ if showcaseCode != 0 {
+ os.Exit(showcaseCode)
+ }
}
}
os.Exit(exitCode)
@@ -127,10 +143,13 @@ func main() {
if flags.SyncCodebergPublic {
exitCode := cli.HandleSyncCodebergPublic(cfg, flags)
if exitCode != 0 || !flags.SyncGitHubPublic {
- if exitCode == 0 && flags.Showcase && !flags.SyncGitHubPublic {
- showcaseCode := cli.HandleShowcase(cfg, flags)
- if showcaseCode != 0 {
- os.Exit(showcaseCode)
+ if exitCode == 0 {
+ runReleaseCheckIfEnabled(cfg, flags)
+ if flags.Showcase && !flags.SyncGitHubPublic {
+ showcaseCode := cli.HandleShowcase(cfg, flags)
+ if showcaseCode != 0 {
+ os.Exit(showcaseCode)
+ }
}
}
os.Exit(exitCode)
@@ -141,22 +160,30 @@ func main() {
if flags.SyncGitHubPublic {
exitCode := cli.HandleSyncGitHubPublic(cfg, flags)
- // Run showcase generation if requested and sync was successful
- if exitCode == 0 && flags.Showcase {
- showcaseCode := cli.HandleShowcase(cfg, flags)
- if showcaseCode != 0 {
- os.Exit(showcaseCode)
- }
- }
-
- // Save batch run state if this was a successful batch run
if exitCode == 0 {
+ // Run release checks after successful sync
+ runReleaseCheckIfEnabled(cfg, flags)
+
+ // Run showcase generation if requested
+ if flags.Showcase {
+ showcaseCode := cli.HandleShowcase(cfg, flags)
+ if showcaseCode != 0 {
+ os.Exit(showcaseCode)
+ }
+ }
+
+ // Save batch run state if this was a successful batch run
saveBatchRunState(flags)
}
os.Exit(exitCode)
}
+ // Handle check releases flag
+ if flags.CheckReleases {
+ os.Exit(cli.HandleCheckReleases(cfg, flags))
+ }
+
// Handle standalone showcase mode (no sync operations specified)
if flags.Showcase {
fmt.Println("Running showcase generation for all repositories (clone-only mode)...")