summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorIbrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>2018-11-29 23:50:59 +0300
committerIbrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>2018-11-29 23:50:59 +0300
commit2001ce60e989d9ad1860dc985e27ccdbff62bca6 (patch)
treee52b55b9385022df07ed096c21991b25ca6da36d /main.go
parentupdate readme (diff)
downloadgitbatch-2001ce60e989d9ad1860dc985e27ccdbff62bca6.tar.gz
an issue of high cohesion is solved
Diffstat (limited to 'main.go')
-rw-r--r--main.go47
1 files changed, 7 insertions, 40 deletions
diff --git a/main.go b/main.go
index 503548c..13e3e9f 100644
--- a/main.go
+++ b/main.go
@@ -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
-}