Skip to content

Commit

Permalink
Merge branch 'EnKrypt-master'
Browse files Browse the repository at this point in the history
  • Loading branch information
ariestiyansyah committed Oct 5, 2017
2 parents b2c5f64 + 7c23d28 commit c3c0f7c
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 46 deletions.
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ or
Available commands:

```
update | Update Update all gitignore configuration
update | Update Update all gitignore configurations
list List available gitignore
-i | input Gitignore input
-o | output Gitignore output filename
Expand All @@ -28,6 +28,12 @@ list List available gitignore
$ gitnore -i go # gitignore for golang
```

### With multiple languages

```
$ gitnore -i java,node,r # comma separated list of languages
```

### Update Map File

```
Expand All @@ -43,7 +49,7 @@ $ gitnore list
Output

```
List avaiables gitignore:
Available gitignore configurations:
actionscript, ada, agda, android, appceleratortitanium, appengine, archlinuxpackages, autotools, c, c++,
cakephp, cfwheels, chefcookbook, clojure, cmake, codeigniter, commonlisp, composer, concrete5, coq,
craftcms, cuda, d, dart, delphi, dm, drupal, eagle, elisp, elixir, elm, episerver, erlang,
Expand Down
67 changes: 40 additions & 27 deletions gitnore.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"io/ioutil"
"os"
osuser "os/user"
"strings"
)

var (
Expand Down Expand Up @@ -37,7 +38,7 @@ func main() {
}

// setup source dir
source_dir = fmt.Sprintf("%s/.gitnore", user.HomeDir)
sourceDir = fmt.Sprintf("%s/.gitnore", user.HomeDir)

cmd := os.Args[1]

Expand All @@ -51,31 +52,42 @@ func main() {
os.Exit(0)
}

if *src == "" || *dest == "" {
fmt.Println("src / dest is required")
usage()
}

var (
b []byte
ok bool
path string
)

if path, ok = mapping[*src]; !ok {
fmt.Printf("unknown source file of: %s\n", *src)
os.Exit(1)
}

if b, err = ioutil.ReadFile(path); err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
if err = ioutil.WriteFile(*dest, b, 0644); err != nil {
fmt.Println(err.Error())
os.Exit(1)
configs := strings.Split(*src, ",")
for index, config := range configs {
if config == "" {
fmt.Println("A specified src parameter was found to be empty")
usage()
}

var (
b, existing []byte
ok bool
path string
)

if path, ok = mapping[config]; !ok {
fmt.Printf("unknown source file of: %s\n", config)
os.Exit(1)
}

if b, err = ioutil.ReadFile(path); err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
// If not first iteration, read destination for appending multiple configurations
if index != 0 {
if existing, err = ioutil.ReadFile(*dest); err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
b = append(append(existing, []byte("\n")...), b...)
}
if err = ioutil.WriteFile(*dest, b, 0644); err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
fmt.Printf("Writing %s into %s.\n", path, *dest)
}
fmt.Printf("Writing %s into %s.\n", path, *dest)
}

func usage() {
Expand All @@ -86,11 +98,12 @@ func usage() {
fmt.Println("\tlist \t: List available gitignore")
fmt.Println()
fmt.Println("Parameters:")
fmt.Println("\t-i \t: Select Language (-i python)")
fmt.Println("\t-i \t: Select Language (-i python or -i java,go)")
fmt.Println("\t-o \t: Output filename (default .gitignore)")
fmt.Println()
fmt.Println("Example usage:")
fmt.Println("\t$ gitnore -i python \t\t: default set to .gitignore")
fmt.Println("\t$ gitnore -i go -u .gitmodule \t: set output file to .gitmodule")
fmt.Println("\t$ gitnore -i java,go \t\t: with multiple languages")
fmt.Println("\t$ gitnore -i go -o .gitmodule \t: set output file to .gitmodule")
os.Exit(1)
}
34 changes: 17 additions & 17 deletions map.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,31 +14,31 @@ import (
"github.com/google/go-github/github"
)

var source_dir string
var sourceDir string

func updateMap() {
var raw_dir = fmt.Sprintf("%s/raw", source_dir)
if _, err := os.Stat(source_dir); err != nil && os.IsNotExist(err) {
if err = os.Mkdir(source_dir, 0700); err != nil {
var rawDir = fmt.Sprintf("%s/raw", sourceDir)
if _, err := os.Stat(sourceDir); err != nil && os.IsNotExist(err) {
if err = os.Mkdir(sourceDir, 0700); err != nil {
fmt.Printf("Error when updating map file: %s\n", err.Error())
os.Exit(1)
}
if err = os.Mkdir(raw_dir, 0700); err != nil {
if err = os.Mkdir(rawDir, 0700); err != nil {
fmt.Printf("Error when updating map file: %s\n", err.Error())
os.Exit(1)
}
}
ctx := context.Background()
client := github.NewClient(nil)
_, dir_contents, _, err := client.Repositories.GetContents(ctx, "valutac", "gitnore", "/config", nil)
_, dirContents, _, err := client.Repositories.GetContents(ctx, "valutac", "gitnore", "/config", nil)
if err != nil {
fmt.Printf("Error when updating map file: %s\n", err.Error())
os.Exit(1)
}

dl := grab.NewClient()
for _, content := range dir_contents {
req, _ := grab.NewRequest(raw_dir, content.GetDownloadURL())
for _, content := range dirContents {
req, _ := grab.NewRequest(rawDir, content.GetDownloadURL())
resp := dl.Do(req)
t := time.NewTicker(500 * time.Millisecond)
defer t.Stop()
Expand All @@ -62,7 +62,7 @@ func updateMap() {
fmt.Printf("Download saved to %s \n", resp.Filename)
}

files, err := ioutil.ReadDir(raw_dir)
files, err := ioutil.ReadDir(rawDir)
if err != nil {
fmt.Printf("Error when updating map file: %s\n", err.Error())
os.Exit(1)
Expand All @@ -74,28 +74,28 @@ func updateMap() {
continue
}
key := strings.ToLower(split[0])
data[key] = fmt.Sprintf("%s/%s", raw_dir, file.Name())
data[key] = fmt.Sprintf("%s/%s", rawDir, file.Name())
}
b, err := json.Marshal(data)
if err != nil {
fmt.Printf("Error when updating map file: %s\n", err.Error())
os.Exit(1)
}
var map_file_path = fmt.Sprintf("%s/map.json", source_dir)
if err := ioutil.WriteFile(map_file_path, b, 0644); err != nil {
var mapFilePath = fmt.Sprintf("%s/map.json", sourceDir)
if err := ioutil.WriteFile(mapFilePath, b, 0644); err != nil {
fmt.Printf("Error when updating map file: %s\n", err.Error())
os.Exit(1)
}
fmt.Println("Updating map file succed")
fmt.Println("Updating map file succeeded")
os.Exit(0)
}

func listMap() map[string]string {
var (
data map[string]string
map_file_path = fmt.Sprintf("%s/map.json", source_dir)
data map[string]string
mapFilePath = fmt.Sprintf("%s/map.json", sourceDir)
)
f, err := os.Open(map_file_path)
f, err := os.Open(mapFilePath)
if err != nil {
if os.IsNotExist(err) {
fmt.Println("Map file not available, please run gitnore update")
Expand All @@ -112,7 +112,7 @@ func listMap() map[string]string {
}

func printMap(data map[string]string) {
fmt.Println("List avaiables gitignore:")
fmt.Println("Available gitignore configurations:")
var keys []string
for key := range data {
keys = append(keys, key)
Expand Down

0 comments on commit c3c0f7c

Please sign in to comment.