diff options
| author | Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com> | 2018-11-29 23:50:59 +0300 |
|---|---|---|
| committer | Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com> | 2018-11-29 23:50:59 +0300 |
| commit | 2001ce60e989d9ad1860dc985e27ccdbff62bca6 (patch) | |
| tree | e52b55b9385022df07ed096c21991b25ca6da36d /main.go | |
| parent | update readme (diff) | |
| download | gitbatch-2001ce60e989d9ad1860dc985e27ccdbff62bca6.tar.gz | |
an issue of high cohesion is solved
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 47 |
1 files changed, 7 insertions, 40 deletions
@@ -1,70 +1,37 @@ package main import ( - "io/ioutil" "log" "os" - "path/filepath" - "strings" "github.com/isacikgoz/gitbatch/pkg/app" "gopkg.in/alecthomas/kingpin.v2" ) + var ( + // take this as default directory if user does not start app with -d flag currentDir, err = os.Getwd() dir = kingpin.Flag("directory", "Directory to roam for git repositories.").Default(currentDir).Short('d').String() repoPattern = kingpin.Flag("pattern", "Pattern to filter repositories").Short('p').String() ) func main() { + // parse the command line flag and options kingpin.Parse() - repositories := FindRepos(*dir) - app, err := app.Setup(repositories) + // set the app + app, err := app.Setup(*dir, *repoPattern) if err != nil { log.Fatal(err) } + // execute the app and wait its routine err = app.Gui.Run() if err != nil { log.Fatal(err) } + // good citizens always clean up their mess defer app.Close() } - -func FindRepos(directory string) (directories []string) { - files, err := ioutil.ReadDir(directory) - - if err != nil { - log.Fatal(err) - } - - filteredFiles := FilterRepos(files) - for _, f := range filteredFiles { - repo := directory + string(os.PathSeparator) + f.Name() - file, err := os.Open(repo) - if err != nil { - continue - } - dir, err := filepath.Abs(file.Name()) - if err != nil { - log.Fatal(err) - } - directories = append(directories, dir) - } - return directories -} - -func FilterRepos(files []os.FileInfo) []os.FileInfo { - var filteredRepos []os.FileInfo - for _, f := range files { - if strings.Contains(f.Name(), *repoPattern) { - filteredRepos = append(filteredRepos, f) - } else { - continue - } - } - return filteredRepos -} |
