123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // +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
- //core.Drivers["dummy"] = basefs.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
- }
- ////////////////////////////////
- // 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()
- }
|