@@ -13,25 +13,23 @@ import (
1313 "github.com/spf13/cobra"
1414)
1515
16- type ParserArgs struct {
17- SourceGitlabURL string
18- SourceGitlabToken string
19- DestinationGitlabURL string
20- DestinationGitlabToken string
21- MirrorMapping utils.MirrorMapping
22- Verbose bool
23- NoPrompt bool
24- }
16+ var (
17+ version = "dev"
18+ )
2519
2620func main () {
27- var args ParserArgs
21+ var args utils. ParserArgs
2822 var mirrorMappingPath string
2923
3024 var rootCmd = & cobra.Command {
3125 Use : "gitlab-sync" ,
3226 Short : "Copy and enable mirroring of gitlab projects and groups" ,
3327 Long : "Fully customizable gitlab repositories and groups mirroring between two (or one) gitlab instances." ,
3428 Run : func (cmd * cobra.Command , cmdArgs []string ) {
29+ if args .Version {
30+ fmt .Printf ("gitlab-sync version: %s\n " , version )
31+ return
32+ }
3533
3634 utils .SetVerbose (args .Verbose )
3735 utils .LogVerbose ("Verbose mode enabled" )
@@ -56,8 +54,9 @@ func main() {
5654 log .Fatalf ("Error opening mirror mapping file: %s" , err )
5755 }
5856 utils .LogVerbose ("Mirror mapping file parsed successfully" )
57+ args .MirrorMapping = mapping
5958
60- err = mirroring .MirrorGitlabs (args . SourceGitlabURL , args . SourceGitlabToken , args . DestinationGitlabURL , args . DestinationGitlabToken , mapping )
59+ err = mirroring .MirrorGitlabs (& args )
6160 if err != nil {
6261 fmt .Println ("Error during mirroring process:" )
6362 fmt .Println (err )
@@ -66,13 +65,15 @@ func main() {
6665 },
6766 }
6867
68+ rootCmd .Flags ().BoolVarP (& args .Version , "version" , "V" , false , "Show version" )
6969 rootCmd .Flags ().StringVar (& args .SourceGitlabURL , "source-url" , os .Getenv ("SOURCE_GITLAB_URL" ), "Source GitLab URL" )
7070 rootCmd .Flags ().StringVar (& args .SourceGitlabToken , "source-token" , os .Getenv ("SOURCE_GITLAB_TOKEN" ), "Source GitLab Token" )
7171 rootCmd .Flags ().StringVar (& args .DestinationGitlabURL , "destination-url" , os .Getenv ("DESTINATION_GITLAB_URL" ), "Destination GitLab URL" )
7272 rootCmd .Flags ().StringVar (& args .DestinationGitlabToken , "destination-token" , os .Getenv ("DESTINATION_GITLAB_TOKEN" ), "Destination GitLab Token" )
73- rootCmd .Flags ().BoolVar (& args .Verbose , "verbose" , false , "Enable verbose output" )
74- rootCmd .Flags ().BoolVar (& args .NoPrompt , "no-prompt" , false , "Disable prompting for missing values" )
73+ rootCmd .Flags ().BoolVarP (& args .Verbose , "verbose" , "v " , false , "Enable verbose output" )
74+ rootCmd .Flags ().BoolVarP (& args .NoPrompt , "no-prompt" , "n" , strings . TrimSpace ( os . Getenv ( "NO_PROMPT" )) != "" , "Disable prompting for missing values" )
7575 rootCmd .Flags ().StringVar (& mirrorMappingPath , "mirror-mapping" , os .Getenv ("MIRROR_MAPPING" ), "Path to the mirror mapping file" )
76+ rootCmd .Flags ().BoolVar (& args .DryRun , "dry-run" , false , "Perform a dry run without making any changes" )
7677
7778 if err := rootCmd .Execute (); err != nil {
7879 fmt .Println (err )
0 commit comments