瀏覽代碼

Several changes

Added better usage help
Version and generation to makefile
luis 7 年之前
父節點
當前提交
67aeb24b87

+ 2 - 1
Makefile

@@ -2,12 +2,13 @@ GOPATH=$(CURDIR)/deps:$(CURDIR)
 DIST=./DIST
 
 all: deps
+	@GOPATH=$(GOPATH) go generate gdrivemount/cmd/gdrivemount
 	GOPATH=$(GOPATH) go build -o DIST/gdrivemount gdrivemount/cmd/gdrivemount
 
 deps:
 	GOPATH=$(GOPATH) go get -v ./src/gdrivemount/cmd/gdrivemount
 
-test:
+test: # non golang test
 	cd test; ../DIST/gdrivemount mount
 
 clean:

+ 14 - 2
src/gdrivemount/cmd/gdrivemount/main.go

@@ -1,5 +1,7 @@
 package main
 
+//go:generate go run ../genversion/main.go -package main -out version.go
+
 import (
 	"context"
 	"flag"
@@ -27,13 +29,23 @@ func main() {
 	var verboselog bool
 	prettylog.Global()
 	// getClient
+	fmt.Printf("gdrivemount-%s\n\n", Version)
 
-	flag.BoolVar(&daemonize, "d", false, "run app in background")
+	flag.BoolVar(&daemonize, "d", false, "Run app in background")
 	flag.BoolVar(&verboselog, "v", false, "Verbose log")
 
+	flag.Usage = func() {
+		fmt.Fprintf(os.Stderr, "Usage: %s [options] MOUNTPOINT\n\n", os.Args[0])
+		fmt.Fprintf(os.Stderr, "Options:\n")
+		flag.PrintDefaults()
+		fmt.Fprintf(os.Stderr, "\n")
+	}
 	flag.Parse()
+
 	if len(flag.Args()) < 1 {
-		log.Fatal("Usage:\n gdrivemount MOUNTPOINT")
+		flag.Usage()
+		//fmt.Println("Usage:\n gdrivemount [-d] [-v] MOUNTPOINT")
+		return
 	}
 
 	// Daemon

+ 6 - 0
src/gdrivemount/cmd/gdrivemount/version.go

@@ -0,0 +1,6 @@
+package main
+
+const (
+  //Version contains version of the package
+  Version = "0.0.1 - built: 2017-07-07 03:10:31 UTC"
+)

+ 59 - 0
src/gdrivemount/cmd/genversion/main.go

@@ -0,0 +1,59 @@
+package main
+
+import (
+	"flag"
+	"fmt"
+	"log"
+	"os"
+	"os/exec"
+	"regexp"
+	"strings"
+	"time"
+)
+
+func main() {
+	var pkg string
+	var dst string
+	flag.StringVar(&pkg, "package", "", "Set package name")
+	flag.StringVar(&dst, "out", "", "Output file")
+	flag.Parse()
+
+	if pkg == "" {
+		log.Println("Missing argument -package")
+		flag.Usage()
+		return
+	}
+	if dst == "" {
+		log.Println("Missing argument -out")
+		flag.Usage()
+		return
+	}
+
+	tag, err := exec.Command("git", "describe", "--tags").Output()
+	if err != nil {
+		log.Fatal("Error Getting tag", err)
+	}
+	re := regexp.MustCompile(`\r?\n`)
+	vtag := re.ReplaceAll(tag, []byte(" "))
+
+	version := fmt.Sprintf("%s - built: %s", strings.TrimSpace(string(vtag)), time.Now().UTC().Format("2006-01-02 15:04:05 UTC"))
+
+	fmt.Printf("Version: %s\n", version)
+
+	f, err := os.OpenFile(dst, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
+	if err != nil {
+		fmt.Println("Error opening file", err)
+		return
+	}
+
+	fmt.Fprintf(f, "package %s\n", pkg)
+
+	fmt.Fprintln(f, "\nconst (")
+	fmt.Fprintf(f, "  //Version contains version of the package\n")
+	fmt.Fprintf(f, "  Version = \"%s\"\n", version)
+	fmt.Fprintln(f, ")")
+
+	f.Sync()
+	f.Close()
+
+}

+ 3 - 1
src/gdrivemount/fileentry.go

@@ -104,7 +104,9 @@ func (fe *FileEntry) Sync() (err error) {
 
 	ngFile := &drive.File{}
 	up := fe.fs.srv.Files.Update(fe.GFile.Id, ngFile)
-	_, err = up.Media(fe.tempFile).Do()
+	upFile, err := up.Media(fe.tempFile).Do()
+
+	fe.SetGFile(upFile) // update local GFile entry
 	return
 
 }