Gert-dev / php-ide-serenata

Atom IDE package that integrates the Serenata server to provide PHP code assistance
https://serenata.gitlab.io/
Other
274 stars 19 forks source link

Activation fails after update - incorrect path to Library #414

Closed nickajordan closed 6 years ago

nickajordan commented 6 years ago

Steps to reproduce:

  1. Update to current version.
  2. Restart Atom

Result: EACCES: permission denied, mkdir '/Users/nickLibrary'

That path appears to be missing a slash. :-) Should be /Users/nick/Library

Atom: 1.26.1 x64 Electron: 1.7.11 OS: Mac OS X 10.13.4 Thrown From: php-ide-serenata package 4.1.0

Stack Trace

Failed to activate the php-ide-serenata package

At EACCES: permission denied, mkdir '/Users/nickLibrary'

Error: EACCES: permission denied, mkdir '/Users/nickLibrary'
    at Object.fs.mkdirSync (fs.js:895:18)
    at sync (/packages/atom-xsltransform/node_modules/mkdirp/index.js:71:13)
    at sync (/packages/atom-xsltransform/node_modules/mkdirp/index.js:77:24)
    at Function.sync (/packages/atom-xsltransform/node_modules/mkdirp/index.js:77:24)
    at AtomConfig.module.exports.AtomConfig.getPathToStorageFolderInRidiculousWay (/packages/php-ide-serenata/lib/AtomConfig.coffee:95:16)
    at AtomConfig.module.exports.AtomConfig.load (/packages/php-ide-serenata/lib/AtomConfig.coffee:58:30)
    at AtomConfig.Config (/packages/php-ide-serenata/lib/Config.coffee:77:10)
    at /packages/php-ide-serenata/lib/AtomConfig.coffee:50:9)
    at Object.getConfiguration (/packages/php-ide-serenata/lib/Main.coffee:1242:30)
    at Object.getLinterProvider (/packages/php-ide-serenata/lib/Main.coffee:1358:51)
    at Object.setLinterIndieService (/packages/php-ide-serenata/lib/Main.coffee:1108:10)
    at Provider.module.exports.Provider.provide (/Applications/Atom.app/Contents/Resources/app/node_modules/service-hub/lib/provider.js:34:58)
    at ServiceHub.module.exports.ServiceHub.consume (/Applications/Atom.app/Contents/Resources/app/node_modules/service-hub/lib/service-hub.js:50:24)
    at Package.activateServices (/Applications/Atom.app/Contents/Resources/app/src/package.js:405:79)
    at Package.activateNow (/Applications/Atom.app/Contents/Resources/app/src/package.js:233:20)
    at measure (/Applications/Atom.app/Contents/Resources/app/src/package.js:206:33)
    at Package.measure (/Applications/Atom.app/Contents/Resources/app/src/package.js:88:25)
    at activationPromise.Promise (/Applications/Atom.app/Contents/Resources/app/src/package.js:200:20)
    at Promise (<anonymous>)
    at Package.activate (/Applications/Atom.app/Contents/Resources/app/src/package.js:198:38)
    at PackageManager.activatePackage (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:695:42)
    at config.transactAsync (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:670:36)
    at Config.transactAsync (/Applications/Atom.app/Contents/Resources/app/src/config.js:866:28)
    at PackageManager.activatePackages (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:668:23)
    at PackageManager.activate (/Applications/Atom.app/Contents/Resources/app/src/package-manager.js:647:50)
    at loadStatePromise.loadState.then (/Applications/Atom.app/Contents/Resources/app/src/atom-environment.js:871:27)
    at <anonymous>

Commands

Non-Core Packages

aligner 1.2.4 
aligner-javascript 1.3.0 
aligner-php 1.2.0 
atom-debug-ui 1.0.1 
atom-gpg 0.6.0 
atom-ide-ui 0.11.1 
atom-monokai 0.10.9 
atom-phpcs 1.7.3 
atom-xsltransform 1.0.0 
autocomplete-php 0.3.7 
autocomplete-ruby 0.2.8 
autocomplete-xml 0.9.4 
busy-signal 1.4.3 
docblockr 0.13.7 
file-types 0.5.5 
firacode 0.3.0 
gist 1.1.0 
git-log 0.4.1 
git-plus 7.10.2 
git-status 0.3.4 
highlight-line 0.12.0 
highlight-selected 0.13.1 
hyperclick 0.0.0 
ide-css 0.3.0 
ide-json 0.2.1 
ide-php 0.7.14 
ide-typescript 0.7.6 
intentions 1.1.5 
language-markdown 0.25.1 
language-smarty 1.8.0 
linter 2.2.0 
linter-php 1.5.1 
linter-phpcs 1.6.8 
linter-ruby 1.2.6 
linter-ui-default 1.7.1 
markdown-toc 0.4.2 
markdown-writer 2.7.3 
minimap 4.29.8 
minimap-cursorline 0.2.0 
open-recent 5.0.0 
php-debug 0.3.2 
php-ide-serenata 4.1.0 
php-integrator-autocomplete-plus 1.6.2 
php-integrator-linter-legacy-php56 1.3.1 
php-integrator-navigation 1.2.1 
php-integrator-refactoring 1.4.1 
php-integrator-tooltips-legacy-php56 1.1.6 
project-manager 3.3.5 
ruby-block 0.3.6 
ruby-navigator 0.5.0 
scroll-through-time 0.3.0 
sub-monokai 1.4.0 
sync-settings 0.8.6 
teletype 0.13.2 
xml-formatter 0.11.0 
Gert-dev commented 6 years ago

I was a bit frustrated to learn that there was no cross-platform way to fetch a semi-persistent storage folder, so I took one from online sources. I noticed there was a slash missing for Linux - and added that - and did then wonder if that same slash was necessary on macOS. I finally decided against adding it because the HOME environment variable may well include it on macOS. I should have listened to my gut feeling and added it anyway!

But thanks for taking the time to report it, as I have no macOS system available to test it.

nickajordan commented 6 years ago

You’re very welcome. Happy to be able to help.