lloiser / go-debug

🐛 A go debugger for atom using delve.
https://atom.io/packages/go-debug
MIT License
388 stars 21 forks source link

Delve Downloader doesn't support GOPATH with multiple parts #33

Closed mrobinsn closed 8 years ago

mrobinsn commented 8 years ago

Looks like the dlv download procedure doesn't handle GOPATHs with multiple parts.

[Enter steps to reproduce below:]

  1. Click "Yes" on dialog to download dlv binary for me.

Atom Version: 1.8.0 System: Mac OS X 10.11.5 Thrown From: go-debug package, v0.1.13

Stack Trace

Uncaught Error: ENOENT: no such file or directory, chmod '/Users/{username}/.gvm/pkgsets/go1.6.2/global:/Users/{username}/code/go/bin/dlv'

At fs.js:1055

Error: ENOENT: no such file or directory, chmod '/Users/{username}/.gvm/pkgsets/go1.6.2/global:/Users/{username}/code/go/bin/dlv'
    at Error (native)
    at Object.fs.chmodSync (fs.js:1055:18)
    at Object.module.exports.writeFileTo (/Users/{username}/.atom/packages/go-debug/node_modules/adm-zip/util/utils.js:108:20)
    at Object.extractEntryTo (/Users/{username}/.atom/packages/go-debug/node_modules/adm-zip/adm-zip.js:354:19)
    at extract (/Users/{username}/.atom/packages/go-debug/lib/delve.js:374:7)
    at Request._callback (/Users/{username}/.atom/packages/go-debug/lib/delve.js:364:4)
    at Request.self.callback (/Users/{username}/.atom/packages/go-debug/node_modules/request/request.js:200:22)
    at emitTwo (events.js:87:13)
    at Request.emit (events.js:172:7)
    at Request.<anonymous> (/Users/{username}/.atom/packages/go-debug/node_modules/request/request.js:1067:10)
    at emitOne (events.js:82:20)
    at Request.emit (events.js:169:7)
    at IncomingMessage.<anonymous> (/Users/{username}/.atom/packages/go-debug/node_modules/request/request.js:988:12)
    at emitNone (events.js:72:20)
    at IncomingMessage.emit (events.js:166:7)
    at endReadableNT (_stream_readable.js:905:12)
    at doNTCallback2 (node.js:465:9)
    at process._tickCallback (node.js:379:17)

Commands

Config

{
  "core": {
    "disabledPackages": [
      "gocode",
      "go-oracle",
      "go-oracle",
      "minimap",
      ".bin"
    ],
    "themes": [
      "nucleus-dark-ui",
      "one-dark-syntax"
    ]
  }
}

Installed Packages

# User
activate-power-mode, v0.5.2
angularjs, v0.3.4
autocomplete-go, v1.1.0
builder-go, v1.0.0
circle-ci, v0.10.1
environment, v1.2.0
file-icons, v1.7.15
fonts, v1.5.0
go-config, v1.1.4
go-debug, v0.1.13
go-find-references, v1.2.3
go-get, v1.0.3
go-plus, v4.1.0
go-rename, v0.3.0
gofmt, v1.1.6
gometalinter-linter, v1.1.0
gorename, v1.0.2
language-docker, v1.1.6
language-fish-shell, v1.0.4
language-go, v0.42.0
language-proto, v0.7.0
language-protobuf, v0.5.0
language-ts, v1.0.2
linter, v1.11.11
merge-conflicts, v1.4.4
navigator-godef, v1.0.3
nucleus-dark-ui, v0.8.5
project-manager, v2.9.7
tabs-to-spaces, v1.0.2
terminal-plus, v0.14.5
tester-go, v1.0.4

# Dev
No dev packages
lloiser commented 8 years ago

hm... hard to tell which one the correct path would be to copy the downloaded dlv to. I will display a notification and let the user choose the correct path.

mrobinsn commented 8 years ago

In this case I would want it to use the first part of the path (that is my "third-party" GOPATH). But letting me choose is even better! Thanks.

lloiser commented 8 years ago

note: the UI is really ugly, I know, but this modal is hopefully not needed in the future ...

michaeltrobinson commented 8 years ago

@lloiser Thank you, works great!