Improve: support custom configuration directory

This commit is contained in:
Dreamacro 2018-10-16 13:12:36 +08:00
parent 381f764507
commit b68af43389

20
main.go
View file

@ -4,20 +4,40 @@ import (
"os" "os"
"os/signal" "os/signal"
"syscall" "syscall"
"flag"
"path"
"github.com/Dreamacro/clash/config" "github.com/Dreamacro/clash/config"
"github.com/Dreamacro/clash/hub" "github.com/Dreamacro/clash/hub"
"github.com/Dreamacro/clash/proxy" "github.com/Dreamacro/clash/proxy"
"github.com/Dreamacro/clash/tunnel" "github.com/Dreamacro/clash/tunnel"
C "github.com/Dreamacro/clash/constant"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
) )
var (
homedir string
)
func init() {
flag.StringVar(&homedir, "d", "", "set configuration directory")
flag.Parse()
}
func main() { func main() {
tunnel.Instance().Run() tunnel.Instance().Run()
proxy.Instance().Run() proxy.Instance().Run()
hub.Run() hub.Run()
if (homedir != "") {
if !path.IsAbs(homedir) {
currentDir, _ := os.Getwd()
homedir = path.Join(currentDir, homedir)
}
C.SetHomeDir(homedir)
}
config.Init() config.Init()
err := config.Instance().Parse() err := config.Instance().Parse()
if err != nil { if err != nil {