1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // +build linux
- package main
- //go:generate go get dev.hexasoftware.com/hxs/genversion
- //go:generate genversion -package main -out version.go
- import (
- "fmt"
- "os"
- "os/exec"
- "dev.hexasoftware.com/hxs/cloudmount/internal/core"
- "dev.hexasoftware.com/hxs/cloudmount/internal/fs/gdrivefs"
- "dev.hexasoftware.com/hxs/prettylog"
- )
- var (
- Name = "cloudmount"
- log = prettylog.New(Name)
- )
- func main() {
- prettylog.Global()
- // getClient
- fmt.Fprintf(os.Stderr, "%s-%s\n", Name, Version)
- core := core.New()
- // More will be added later
- core.Drivers["gdrive"] = gdrivefs.New
- if err := parseFlags(&core.Config); err != nil {
- log.Fatalln(err)
- }
- err := core.Init() // Before daemon, because might require interactivity
- if err != nil {
- log.Println("Err:", err)
- return
- }
- // Register drivers here too
- ////////////////////////////////
- // Daemon
- /////////////////
- if core.Config.Daemonize {
- subArgs := []string{}
- for _, arg := range os.Args[1:] {
- if arg == "-d" { // ignore daemon flag
- continue
- }
- subArgs = append(subArgs, arg)
- }
- cmd := exec.Command(os.Args[0], subArgs...)
- //cmd.Stdout = os.Stdout
- //cmd.Stderr = os.Stderr
- cmd.Start()
- fmt.Println("[PID]", cmd.Process.Pid)
- os.Exit(0)
- return
- }
- core.Mount()
- }
|