package main

/*
	this parses the command line arguements

	this enables command line options from other packages like 'gui' and 'log'
*/

var argv args

type args struct {
	Repo      string `arg:"positional"                     help:"go import path"`
	AutoWork  bool   `arg:"--auto-work"  default:"false"   help:"auto recreate the go.work file"`
	DryRun    bool   `arg:"--dry-run"                      help:"show what would be run"`
	Recursive bool   `arg:"--recursive"  default:"false"   help:"resursively clone all dependencies"`
	Pull      bool   `arg:"--git-pull"   default:"false"   help:"run 'git pull' on all your repos"`
	RedoGoMod bool   `arg:"--go-reset"   default:"false"   help:"remake all the go.sum and go.mod files"`
	// Fetch     bool   `arg:"--git-fetch"      default:"false" help:"run 'git fetch' on all your repos"`
}

func (a args) Description() string {
	return `
go-clone does git clone on go package repositories.
It uses ~/go/src unless it finds a go.work file in a parent directory.

This will clone the sources for go-clone:
	go-clone go.wit.com/apps/go-clone

If a go.work file is found, this will auto generate a new go.work file.
The old work file is saved as go.work.last
	go-clone --auto-work go.wit.com/apps/go-clone

This will recursively clone a package and all the build requirements:
	go-clone --recursive go.wit.com/apps/go-clone
`
}

func (args) Version() string {
	return "go-clone " + VERSION + "    Built on " + BUILDTIME
}