1
0

api.go 647 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package ipfs_api
  2. import (
  3. "log"
  4. "github.com/ipfs/go-ipfs-api"
  5. "net/http"
  6. )
  7. var sh *MyShell
  8. var Addr = "127.0.0.1:5001"
  9. type MyShell struct {
  10. shell.Shell
  11. Url string
  12. Client *http.Client
  13. }
  14. func reset() {
  15. if sh == nil || !sh.IsUp() {
  16. sh = &MyShell{
  17. Url: Addr,
  18. Client: &http.Client{
  19. Transport: &http.Transport{
  20. DisableKeepAlives: true,
  21. },
  22. },
  23. }
  24. sh.Shell = *shell.NewShellWithClient(sh.Url, sh.Client)
  25. if id, err := sh.ID(); err == nil {
  26. v0, _, _ := sh.Version()
  27. log.Println("ipfs version", v0, "node", id.ID, "online")
  28. }
  29. }
  30. }
  31. func Shell() *MyShell {
  32. reset()
  33. return sh
  34. }
  35. func init() {
  36. reset()
  37. }