1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- // Copyright 2015 The etcd Authors
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- package main
- import (
- "flag"
- "fmt"
- "os"
- "path/filepath"
- "github.com/coreos/pkg/capnslog"
- )
- var plog = capnslog.NewPackageLogger("github.com/coreos/etcd", "etcd-agent")
- func main() {
- etcdPath := flag.String("etcd-path", filepath.Join(os.Getenv("GOPATH"), "bin/etcd"), "the path to etcd binary")
- etcdLogDir := flag.String("etcd-log-dir", "etcd-log", "directory to store etcd logs, data directories, failure archive")
- port := flag.String("port", ":9027", "port to serve agent server")
- useRoot := flag.Bool("use-root", true, "use root permissions")
- failpointAddr := flag.String("failpoint-addr", ":2381", "interface for gofail's HTTP server")
- flag.Parse()
- cfg := AgentConfig{
- EtcdPath: *etcdPath,
- LogDir: *etcdLogDir,
- FailpointAddr: *failpointAddr,
- UseRoot: *useRoot,
- }
- if *useRoot && os.Getuid() != 0 {
- fmt.Println("got --use-root=true but not root user")
- os.Exit(1)
- }
- if !*useRoot {
- fmt.Println("root permissions disabled, agent will not modify network")
- }
- a, err := newAgent(cfg)
- if err != nil {
- plog.Fatal(err)
- }
- a.serveRPC(*port)
- var done chan struct{}
- <-done
- }
|