IPFS_ADDRESS_RPC env var for changing rpc target
Jeromy committed
Oct 18, 2014 at 17:29 UTC
3ab3170a986dabc6654c29d2d6e03cefcff34e0f
1 file changed
+28
-11
daemon/daemon_client.go
+28
-11
@@ -47,26 +47,43 @@ func getDaemonAddr(confdir string) (string, error) {
47
// over network RPC API. The address of the daemon is retrieved from the config
48
// directory, where live daemons write their addresses to special files.
49
func SendCommand(command *Command, confdir string) error {
50
- //check if daemon is running
51
- log.Info("Checking if daemon is running...")
50
+ server := os.Getenv("IPFS_ADDRESS_RPC")
51
+
52
+ if server == "" {
53
+ //check if daemon is running
54
+ log.Info("Checking if daemon is running...")
55
+ if !serverIsRunning(confdir) {
56
+ return ErrDaemonNotRunning
57
+ }
58
+
59
+ log.Info("Daemon is running!")
60
+
61
+ var err error
62
+ server, err = getDaemonAddr(confdir)
63
+ if err != nil {
64
+ return err
65
+ }
66
+ }
67
+
68
+ return serverComm(server, command)
69
+}
70
+
71
+func serverIsRunning(confdir string) bool {
72
var err error
73
confdir, err = u.TildeExpansion(confdir)
74
if err != nil {
55
- return err
75
+ log.Error("Tilde Expansion Failed: %s", err)
76
+ return false
77
}
78
lk, err := daemonLock(confdir)
79
if err == nil {
80
lk.Close()
60
- return ErrDaemonNotRunning
61
- }
62
-
63
- log.Info("Daemon is running! [reason = %s]", err)
64
-
65
- server, err := getDaemonAddr(confdir)
66
- if err != nil {
67
- return err
81
+ return false
82
}
83
+ return true
84
+}
85
86
+func serverComm(server string, command *Command) error {
87
log.Info("Daemon address: %s", server)
88
maddr, err := ma.NewMultiaddr(server)
89
if err != nil {