Giter Site home page Giter Site logo

remote-ftp's Introduction

Remote FTP

FTP/FTPS/SFTP client for Atom.io

Screenshot

Getting started

  1. Open an existing project or create a new one (File -> Open folder...)
  2. Open remote-ftp sidebar (Packages -> Remote FTP -> Toggle)
  3. Create a configuration file for your project (Packages -> Remote FTP -> Create (s)FTP config file)
  4. Once connected you should be seeing the content of the remote connection
  5. All basic commands (connect, disconnect, ...) are available from the sidebar context menu and the Command Palette

Tip: Create an ignore file to prevent your sensitive information from getting synced to your host (Packages -> Remote FTP -> Create ignore file)

Keyboard shortcuts

We all know that some handy commands can make our daily task easier, this are meant to do that, be aware that the action of any of them could overwrite or be over written by any other plugin.

Windows Mac
Toggle Ctrl + Alt + o Ctrl + Alt + o
Connect Ctrl + Alt + c Ctrl + Alt + c
Disconnect Ctrl + Alt + d Ctrl + Alt + d
Upload Ctrl + Shift + u Cmd + Shift + u

Package preferences

There are some settings hidden in the package preferences!

Screenshot of Settings

Configuration in project's .ftpconfig file

SFTP Configuration Options

{
    "protocol": "sftp",
    "host": "example.com", // string - Hostname or IP address of the server. Default: 'localhost'
    "port": 22, // integer - Port number of the server. Default: 22
    "user": "user", // string - Username for authentication. Default: (none)
    "pass": "pass", // string - Password for password-based user authentication. Default: (none)
    "promptForPass": false, // boolean - Set to true for enable password/passphrase dialog. This will prevent from using cleartext password/passphrase in this config. Default: false
    "remote": "/", // try to use absolute paths starting with /
    "agent": "", // string - Path to ssh-agent's UNIX socket for ssh-agent-based user authentication. Linux/Mac users can set "env" as a value to use env SSH_AUTH_SOCK variable. Windows users: set to 'pageant' for authenticating with Pageant or (actual) path to a cygwin "UNIX socket." Default: (none)
    "privatekey": "", // string - Absolute path to the private key file (in OpenSSH format). Default: (none)
    "passphrase": "", // string - For an encrypted private key, this is the passphrase used to decrypt it. Default: (none)
    "hosthash": "", // string - 'md5' or 'sha1'. The host's key is hashed using this method and passed to the hostVerifier function. Default: (none)
    "ignorehost": true,
    "connTimeout": 10000, // integer - How long (in milliseconds) to wait for the SSH handshake to complete. Default: 10000
    "keepalive": 10000, // integer - How often (in milliseconds) to send SSH-level keepalive packets to the server (in a similar way as OpenSSH's ServerAliveInterval config option). Set to 0 to disable. Default: 10000
    "keyboardInteractive": false, // boolean - Set to true for enable verifyCode dialog. Keyboard interaction authentication mechanism. For example using Google Authentication (Multi factor)
    "keyboardInteractiveForPass": false, // boolean - Set to true for enable keyboard interaction and use pass options for password. No open dialog.
    "watch":[ // array - Paths to files, directories, or glob patterns that are watched and when edited outside of the atom editor are uploaded. Default : []
        "dist/stylesheets/main.css", // reference from the root of the project.
        "dist/stylesheets/",
        "dist/stylesheets/*.css"
    ],
    "watchTimeout":500, // integer - The duration ( in milliseconds ) from when the file was last changed for the upload to begin.
    "filePermissions":"0644" // string - Permissions for uploaded files. WARNING: if this option is set, previously set permissions on the remote are overwritten!
}

FTP & FTPS Configuration Options

{
    "protocol": "ftp",
    "host": "example.com", // string - The hostname or IP address of the FTP server. Default: 'localhost'
    "port": 21, // integer - The port of the FTP server. Default: 21
    "user": "user", // string - Username for authentication. Default: 'anonymous'
    "pass": "pass", // string - Password for authentication. Default: 'anonymous@'
    "promptForPass": false, // boolean - Set to true for enable password dialog. This will prevent from using cleartext password in this config. Default: false
    "remote": "/",
    "secure": false, // mixed - Set to true for both control and data connection encryption, 'control' for control connection encryption only, or 'implicit' for implicitly encrypted control connection (this mode is deprecated in modern times, but usually uses port 990) Default: false
    "secureOptions": null, // object - Additional options to be passed to tls.connect(). Default: (null) see https://nodejs.org/api/tls.html#tls_tls_connect_options_callback
    "connTimeout": 10000, // integer - How long (in milliseconds) to wait for the control connection to be established. Default: 10000
    "pasvTimeout": 10000, // integer - How long (in milliseconds) to wait for a PASV data connection to be established. Default: 10000
    "keepalive": 10000, // integer - How often (in milliseconds) to send a 'dummy' (NOOP) command to keep the connection alive. Default: 10000\. If set to 0, keepalive is disabled.
    "watch":[ // array - Paths to files, directories, or glob patterns that are watched and when edited outside of the atom editor are uploaded. Default : []
        "dist/stylesheets/main.css", // reference from the root of the project.
        "dist/stylesheets/",
        "dist/stylesheets/*.css"
    ],
    "watchTimeout":500 // integer - The duration ( in milliseconds ) from when the file was last changed for the upload to begin.
}

How to use .ftpignore?

This package use the ignore npm package. Which covers the operation of fully gitignore.

How use multiproject mode?

It is a very alpha / beta version. For the time being, only 1 project is supported at one time.

I'd like to support this project

Help us bring this project to the moon! Atom's rocket needs to get somewhere, right?

  • Contribute! I'll be happy to accept pull requests!

  • Bug hunting! Report them!

  • Feature request? Please let me know by filling an issue!

  • Share the love!

Contributors ๐Ÿ“ฆ

๐Ÿฅ‡ @mgrenier (Original owner)
๐Ÿฅˆ @jpxd
๐Ÿฅ‰ @jimmaaay

@pinguinjkeke @miclaus @phawxby @wasikuss @garetmckinley @zxwef @MikeWillis @maxsbelt @kikoseijo @gevatter @morukutsu @wdacgrs @coolhome @samifouad @JamesCoyle @dhyegofernando @DeanmvSG @nopjmp @prugel @StephenNeate @dala00 @ghoben @inferst @dantman @UziTech @jackalstomper @Alhadis @QwertyZW @ASnow @evilangelmd @kadirgun @nbdamian @thorstenhirsch @ilessiivi @lioutikov @zlibra
@maxswjeon

remote-ftp's People

Contributors

aritheelk avatar asnow avatar coolhome avatar dala00 avatar emoruzzi avatar gevatter avatar ghoben avatar grenierdev avatar icetee avatar inferst avatar jackalstomper avatar jamescoyle avatar jimmaaay avatar jpxd avatar kadirgun avatar kikoseijo avatar maxsbelt avatar miclaus avatar mikewillis avatar monkeywithacupcake avatar nopjmp avatar phawxby avatar pinguinjkeke avatar playertwo avatar pruge avatar putterson avatar samifouad avatar wasikuss avatar wdacgrs avatar zxwef avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

remote-ftp's Issues

Installing โ€œ[email protected]โ€ failed.

I got error installing remote-ftp on install package

npm WARN `git config --get remote.origin.url` returned wrong result (https://github.com/Benvie/harmony-collections.git) undefined
npm WARN `git config --get remote.origin.url` returned wrong result (https://github.com/Benvie/harmony-collections.git) undefined
npm ERR! git clone https://github.com/Benvie/harmony-collections.git undefined
npm ERR! git clone https://github.com/Benvie/harmony-collections.git undefined
npm ERR! Windows_NT 6.2.9200
npm ERR! argv "c:\\Users\\Me\\AppData\\Local\\atom\\app-0.176.0\\resources\\app\\apm\\bin\\\\node.exe" "c:\\Users\\Me\\AppData\\Local\\atom\\app-0.176.0\\resources\\app\\apm\\node_modules\\npm\\bin\\npm-cli.js" "--globalconfig" "c:\\Users\\Me\\AppData\\Local\\atom\\app-0.176.0\\resources\\app\\apm\\.apmrc" "--userconfig" "C:\\Users\\Me\\.atom\\.apmrc" "install" "C:\\Users\\ME~1\\AppData\\Local\\Temp\\d-115030-6336-1d4rga6\\package.tgz" "--target=0.20.0" "--arch=ia32" "--msvs_version=2013"
npm ERR! node v0.10.35
npm ERR! npm  v2.3.0
npm ERR! code ENOGIT

npm ERR! not found: git
npm ERR! 
npm ERR! Failed using git.
npm ERR! This is most likely not a problem with npm itself.
npm ERR! Please check if you have git installed and in your PATH.

Add file popup do not remove itself

Step to reproduce

  1. Right click on a folder -> Add file
  2. Click outside to cancel action

Result

  1. Popup is empty-out but still present
  2. With theme One Dark, popup act as modal and thus render the editor useless since the popup is still present

Opening a remote file is blank

When opening a remote file from the FTP it shows the contents of this file to be completely blank, to view the contents of this file, I need to view it in local view and then edit from there, would be great if we could open the downloaded local file when trying to open a file from the server.

Right click upload not working

Hi, recently the right click upload function has stopped working.

Control S uploads fine but when I comes to uploading via right click it doesn't work at all.

Uncaught Error: No transfer timeout (300 seconds): closing control connection

Uncaught Error: No transfer timeout (300 seconds): closing control connection

Atom Version: 0.162.0
System: Microsoft Windows 8.1 Professionnel
Thrown From: Remote-FTP package, v0.3.0

Steps To Reproduce

  1. Wait till timeout

Stack Trace

At events.js:85

Error: No transfer timeout (300 seconds): closing control connection
  at makeError (d:\Users\Michael\.atom\packages\Remote-FTP\node_modules\ftp\lib\connection.js:1071:13)
  at Parser.<anonymous> (d:\Users\Michael\.atom\packages\Remote-FTP\node_modules\ftp\lib\connection.js:115:28)
  at Parser.emit (events.js:110:17)
  at Parser._write (d:\Users\Michael\.atom\packages\Remote-FTP\node_modules\ftp\lib\parser.js:58:10)
  at doWrite (_stream_writable.js:265:12)
  at writeOrBuffer (_stream_writable.js:252:5)
  at Parser.Writable.write (_stream_writable.js:197:11)
  at Socket.ondata (d:\Users\Michael\.atom\packages\Remote-FTP\node_modules\ftp\lib\connection.js:281:20)
  at Socket.emit (events.js:107:17)
  at readableAddChunk (_stream_readable.js:162:16)
  at Socket.Readable.push (_stream_readable.js:125:10)
  at TCP.onread (net.js:514:20)

/cc @atom/core

Some kind of writeAfterEnd issue

Having put my laptop into standby overnight coming to use Remote FTP the next day I am unable to browse folders. I'm taking a guess the connection dropped as a result of going into standby and has not reconnected on the first request the next day.

Error: write after end
  at writeAfterEnd (_stream_writable.js:147:12)
  at ChannelStream.Writable.write (_stream_writable.js:194:5)
  at SFTP._send (c:\Users\z269cjbb\.atom\packages\Remote-FTP\node_modules\ssh2\lib\SFTP\SFTPv3.js:1017:23)
  at SFTP.opendir (c:\Users\z269cjbb\.atom\packages\Remote-FTP\node_modules\ssh2\lib\SFTP\SFTPv3.js:780:15)
  at SFTP.readdir (c:\Users\z269cjbb\.atom\packages\Remote-FTP\node_modules\ssh2\lib\SFTP\SFTPv3.js:677:17)
  at ConnectorSFTP.module.exports.ConnectorSFTP.list (c:\Users\z269cjbb\.atom\packages\Remote-FTP\lib\connectors\sftp.js:145:15)
  at Client.<anonymous> (c:\Users\z269cjbb\.atom\packages\Remote-FTP\lib\client.js:327:20)
  at Client.module.exports.Client._next (c:\Users\z269cjbb\.atom\packages\Remote-FTP\lib\client.js:278:21)
  at Client.module.exports.Client._enqueue (c:\Users\z269cjbb\.atom\packages\Remote-FTP\lib\client.js:289:9)
  at Client.<anonymous> (c:\Users\z269cjbb\.atom\packages\Remote-FTP\lib\client.js:326:9)
  at Client.module.exports.Client.onceConnected (c:\Users\z269cjbb\.atom\packages\Remote-FTP\lib\client.js:124:14)
  at Client.module.exports.Client.list (c:\Users\z269cjbb\.atom\packages\Remote-FTP\lib\client.js:325:8)
  at Directory.module.exports.Directory.open (c:\Users\z269cjbb\.atom\packages\Remote-FTP\lib\directory.js:98:10)
  at DirectoryView.module.exports.DirectoryView.open (c:\Users\z269cjbb\.atom\packages\Remote-FTP\lib\views\directory-view.js:175:13)
  at HTMLLIElement.<anonymous> (c:\Users\z269cjbb\.atom\packages\Remote-FTP\lib\views\directory-view.js:74:12)
  at HTMLLIElement.handler (c:\Users\z269cjbb\AppData\Local\atom\app-0.174.0\resources\app\src\space-pen-extensions.js:112:34)
  at HTMLLIElement.jQuery.event.dispatch (c:\Users\z269cjbb\AppData\Local\atom\app-0.174.0\resources\app\node_modules\space-pen\vendor\jquery.js:4681:9)
  at HTMLLIElement.elemData.handle (c:\Users\z269cjbb\AppData\Local\atom\app-0.174.0\resources\app\node_modules\space-pen\vendor\jquery.js:4359:46)

Uncaught Error: stream.push() after EOF

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 0.177.0
System: Mac OS X 10.10.2
Thrown From: Remote-FTP package, v0.4.7

Stack Trace

Uncaught Error: stream.push() after EOF

At events.js:94

Error: stream.push() after EOF
  at readableAddChunk (_stream_readable.js:150:15)
  at SSH2Stream.Readable.push (_stream_readable.js:127:10)
  at SSH2Stream.Transform.push [as __push] (_stream_transform.js:142:32)
  at SSH2Stream.push (/Users/TaeYeongKIM/.atom/packages/Remote-FTP/node_modules/ssh2/node_modules/ssh2-streams/lib/ssh.js:217:18)
  at send (/Users/TaeYeongKIM/.atom/packages/Remote-FTP/node_modules/ssh2/node_modules/ssh2-streams/lib/ssh.js:4812:12)
  at SSH2Stream.channelEOF (/Users/TaeYeongKIM/.atom/packages/Remote-FTP/node_modules/ssh2/node_modules/ssh2-streams/lib/ssh.js:774:10)
  at Channel.eof (/Users/TaeYeongKIM/.atom/packages/Remote-FTP/node_modules/ssh2/lib/Channel.js:306:35)
  at Channel.onFinish (/Users/TaeYeongKIM/.atom/packages/Remote-FTP/node_modules/ssh2/lib/Channel.js:260:10)
  at Channel.emit (events.js:113:17)
  at prefinish (_stream_writable.js:476:12)
  at finishMaybe (_stream_writable.js:484:7)
  at endWritable (_stream_writable.js:495:3)
  at Channel.Writable.end (_stream_writable.js:461:5)
  at SFTPStream.onend (_stream_readable.js:506:10)
  at SFTPStream.g (events.js:202:16)
  at SFTPStream.emit (events.js:138:20)
  at _stream_readable.js:909:16
  at process._tickCallback (node.js:364:11)

Commands

     -8:15.1 core:move-down (atom-text-editor.editor)
  4x -8:14.7 core:backspace (atom-text-editor.editor)
     -8:12.9 core:save (atom-text-editor.editor)
     -8:11.9 core:move-down (atom-text-editor.editor)
  2x -8:11.6 core:move-left (atom-text-editor.editor)
     -8:07.6 core:save (atom-text-editor.editor)
     -8:06.7 core:close (atom-text-editor.editor)
     -7:38.8 core:save (atom-text-editor.editor)
     -6:32.1 settings-view:open (atom-text-editor.editor)
     -0:35.4 core:move-right (atom-text-editor.editor)
  5x -0:35.1 core:select-down (atom-text-editor.editor)
     -0:32.6 core:backspace (atom-text-editor.editor)
     -0:32.2 core:save (atom-text-editor.editor)
     -0:10.3 remote-ftp:disonnect (ol.full-menu.list-tree.has-collapsable-children.focusable-panel)
  2x -0:07.0 remote-ftp:toggle (ol.full-menu.list-tree.has-collapsable-children.focusable-panel)
     -0:00.4 remote-ftp:connect (atom-workspace.workspace.scrollbars-visible-when-scrolling.theme-atom-dark-syntax.theme-atom-dark-ui)

Config

{
  "core": {
    "themes": [
      "atom-dark-ui",
      "atom-dark-syntax"
    ]
  }
}

Installed Packages

# User
Remote-FTP, v0.4.7
highlight-line, v0.9.3
project-manager, v1.15.5

# Dev
No dev packages

/cc @atom/core

File Icons

Is there anyway to get file icons to the remote-ftp-tree like some plugins do for the local tree?
That help because I often have files with the same name but different endings (yes, I know, use folder structure for this - but one one of my projects has to manage on that dirty way) and it is a bit difficult to find the right files quickly.

Support 0.182 multiple project

  • Seperate Client and Tree View : 1x Tree View for the editor, Nx Client per root folder
  • atom.project.onDidChangePaths to get noticed when a root folder changes

FTP rename path popup stays open but empty

Step to reproduce

  1. Rename /path/to/folder to /path/folder

Expect

  1. Folder gets renamed
  2. Popup closed
  3. Tree refreshing

What happens

  1. Folder gets renamed
  2. Popup still there and empty
  3. Tree refreshing

0.4.7 not working

Hello,

It is not working after update to 0.4.7

I connect sftp to my server.

uploading progress bar is never end.

My atom version is 0.177 and OS is Mac 10.10.2

Support for LIST -al

Add configuration to add parameter to LIST method so it can list hidden files

FTP active mode

I'm not exactly sure that's an issue(maybe it's just not implemented as a feature), but i can't find how to set the FTP connection mode to active, and not passive(since the server i work on's config refuses passive connections). I couldn't find anywhere a full list of the config options for the connections, so i type with mode, type, connMode, connType.. nothing. Is there a way to connect in passive mode?

atom.workspaceView is no longer available.

atom.workspaceView is no longer available. In most cases you will not need the view. See the Workspace docs for alternatives: https://atom.io/docs/api/latest/Workspace. If you do need the view, please use atom.views.getView(atom.workspace), which returns an HTMLElement.

Atom.Object.defineProperty.get - c:\Users\cotne\AppData\Local\atom\app-0.174.0\resources\app\src\atom.js:55:11
Object.activate - c:\Users\cotne\.atom\packages\Remote-FTP\lib\remote-ftp.js:117:13

Plugin does nothing when opening a project

Step to reproduce

  1. Open Atom
  2. Open folder
  3. Packages -> Remote-FTP -> Toggle

Seems like the behavior when "Empty Atom" opens a folder has changed. It used to close current Atom and open a new one.

The plugin when activated does a "project check" before activating. Since the behavior changed and Atom doesn't open a new Atom, the plugin stays deactivated.

Package activation is slow & dirty fix

The activation time (according to timecop) in the current version
screenshot 2015-02-22 20 34 43
For some people it isn't that much, but if you have lots of plugins it sums up pretty fast....
I've done some profiling and found that most time is spent in the part:
var SFTP = require('./connectors/sftp'); in client.js
I didn't dig any further yet but use a simple and dirty hack for me now:

// lazy deps loading...
var SFTP = {};
var FTP = {};
setTimeout(function(){ SFTP = require('./connectors/sftp'); }, 1);
setTimeout(function(){ FTP = require('./connectors/ftp'); }, 1);

I just wanted to mention this here. I know its dirty and shouldn't be done this way. But since the client first gets initiated when you connect to a server, the required dependencies should be loaded in the meantime and don't block all other packages and the window.

This breaks (at least in my case) nothing and the plugin is still working.

This little hack brought the activation time to
screenshot 2015-02-22 20 36 00

Any ideas to do the activation async in a good way in the release version ?

sftp with agent on linux

I run atom 0.184 with remote-ftp from the repo.

I startet the ssh-agent by running "ssh-add" and entering my passphrase.

Now I want to connect to a server. I created a sftp-config, changed host and user and removed the password.

For agent i tried the path $SSH_AUTH_SOCK returns, like /tmp/ssh-xxxxxxxxxxxx/agent.dddd. I tried leaving this field empty also.

But nothing happens when I hit connect. No error, but no connection either. Am I missing something?

Uncaught TypeError: Cannot read property 'fastPut' of null

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 0.181.0
System: Microsoft Windows 8.1
Thrown From: Remote-FTP package, v0.6.0

Stack Trace

Uncaught TypeError: Cannot read property 'fastPut' of null

At C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\src\pane.js:782

TypeError: Cannot read property 'fastPut' of null
  at ConnectorSFTP.module.exports.ConnectorSFTP.put (C:\Users\Radu\.atom\packages\Remote-FTP\lib\connectors\sftp.js:279:14)
  at Client.<anonymous> (C:\Users\Radu\.atom\packages\Remote-FTP\lib\client.js:337:20)
  at Client.module.exports.Client._next (C:\Users\Radu\.atom\packages\Remote-FTP\lib\client.js:252:21)
  at Client.module.exports.Client._enqueue (C:\Users\Radu\.atom\packages\Remote-FTP\lib\client.js:263:9)
  at Client.<anonymous> (C:\Users\Radu\.atom\packages\Remote-FTP\lib\client.js:336:9)
  at Client.module.exports.Client.onceConnected (C:\Users\Radu\.atom\packages\Remote-FTP\lib\client.js:98:14)
  at Client.module.exports.Client.upload (C:\Users\Radu\.atom\packages\Remote-FTP\lib\client.js:335:8)
  at Object.module.exports.fileSaved (C:\Users\Radu\.atom\packages\Remote-FTP\lib\remote-ftp.js:379:26)
  at TextBuffer.module.exports.Emitter.emit (C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\node_modules\emissary\lib\emitter.js:118:15)
  at TextBuffer.module.exports.TextBuffer.saveAs (C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\node_modules\text-buffer\lib\text-buffer.js:977:19)
  at TextBuffer.module.exports.TextBuffer.save (C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\node_modules\text-buffer\lib\text-buffer.js:958:19)
  at TextEditor.module.exports.TextEditor.save (C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\src\text-editor.js:620:26)
  at Pane.module.exports.Pane.saveItem (C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\src\pane.js:542:18)
  at Pane.module.exports.Pane.saveActiveItem (C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\src\pane.js:525:19)
  at Workspace.module.exports.Workspace.saveActivePaneItem (C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\src\workspace.js:677:35)
  at atom-workspace.atom.commands.add.core:save (C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\src\workspace-element.js:295:30)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\src\command-registry.js:243:29)
  at C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\src\command-registry.js:3:61
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\node_modules\atom-keymap\lib\keymap-manager.js:558:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\node_modules\atom-keymap\lib\keymap-manager.js:396:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (C:\Users\Radu\AppData\Local\atom\app-0.182.0\resources\app\src\window-event-handler.js:176:20)

Commands

     -1:17.0 find-and-replace:show (atom-text-editor.editor)
     -1:12.2 core:backspace (atom-text-editor.editor)
     -1:10.8 core:copy (atom-text-editor.editor)
     -1:10.4 core:paste (atom-text-editor.editor)
     -1:03.0 core:copy (atom-text-editor.editor)
     -1:02.7 find-and-replace:show (atom-text-editor.editor)
     -1:02.6 core:paste (atom-text-editor.editor.mini)
     -0:54.1 core:copy (atom-text-editor.editor)
     -0:52.4 core:paste (atom-text-editor.editor.mini)
     -0:41.5 core:backspace (atom-text-editor.editor)
     -0:38.2 core:copy (atom-text-editor.editor)
     -0:38.0 core:save (atom-text-editor.editor)
     -0:36.0 core:paste (atom-text-editor.editor)
     -0:31.0 core:undo (atom-text-editor.editor)
     -0:29.0 core:backspace (atom-text-editor.editor)
     -0:28.3 core:save (atom-text-editor.editor)

Config

{
  "core": {}
}

Installed Packages

# User
Remote-FTP, v0.6.0

# Dev
No dev packages

Uncaught TypeError: undefined is not a function

[Enter steps to reproduce below:]

  1. Basically have an internal IP saved in a project. I am connected to a different network where this IP does not exist. Without the Remote-FTP package toggled on it seems like it is trying to connect on a save or file open.
  2. Love the plugin but I think it would benefit greatly from the Atom JSHint plugin.

Atom Version: 0.177.0
System: Microsoft Windows 8.1 Enterprise
Thrown From: Remote-FTP package, v0.4.8

Stack Trace

Uncaught TypeError: undefined is not a function

At C:\*\.atom\packages\Remote-FTP\node_modules\ssh2\lib\client.js:136

TypeError: undefined is not a function
  at C:\*\.atom\packages\Remote-FTP\node_modules\ssh2\lib\client.js:136:9

Commands

     -0:15.6 core:paste (atom-text-editor.editor)
     -0:13.9 core:save (atom-text-editor.editor)

Installed Packages

# User
angularjs, v0.1.0
atom-jshint, v1.5.0
atom-lint, v0.20.1
atom-minjs, v0.2.12
change-case, v0.4.0
coffee-lint, v0.7.3
color-picker, v1.4.4
ember-cli-helper, v0.5.0
ember-snippets, v1.0.0
file-icons, v1.4.9
jsformat, v0.7.18
language-apache, v1.2.0
language-arduino, v0.2.1
language-nginx, v0.4.0
less-autocompile, v0.3.3
linter, v0.11.1
linter-csslint, v0.0.11
linter-htmlhint, v0.0.8
linter-jshint, v0.1.0
linter-jsonlint, v0.1.2
minifier, v0.2.0
minimap, v4.1.3
Remote-FTP, v0.4.8
space-tab, v0.1.0


/cc @atom/core

Uncaught TypeError: Cannot read property 'connect' of null

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 0.165.0
System: Mac OS X 10.10.1
Thrown From: Remote-FTP package, v0.3.0

Stack Trace

Uncaught TypeError: Cannot read property 'connect' of null

At /Users/jerome/.atom/packages/Remote-FTP/lib/client.js:169

TypeError: Cannot read property 'connect' of null
  at Client.module.exports.Client.connect (/Users/jerome/.atom/packages/Remote-FTP/lib/client.js:169:17)
  at Client.<anonymous> (/Users/jerome/.atom/packages/Remote-FTP/lib/views/tree-view.js:154:28)
  at /Users/jerome/.atom/packages/Remote-FTP/lib/client.js:86:14
  at fs.js:295:14
  at Object.oncomplete (fs.js:93:15)

Commands

     -0:00.0 remote-ftp:toggle (input.hidden-input)

Config

{
  "core": {
    "themes": [
      "yosemite-unity-ui",
      "atom-dark-syntax"
    ]
  }
}

Installed Packages

# User
Remote-FTP, v0.3.0
laravel, v0.4.2
remote-edit, v1.6.0
yosemite-unity-ui, v0.3.13

# Dev
No dev packages

/cc @atom/core

Implement drag & drop

  1. Drag & drop within remote tree for quickly moving
  2. Drag & drop between remote/local for quickly downloading/uploading
  3. Drop from "system file/folder" (outsite Atom) to remote for quickly uploadling

Uncaught TypeError: Arguments to path.join must be strings

  1. Remote-FTP stop working.
  2. Tried to check atom.project.path, answer is undefined. Can't toggle tree view.
  3. I set atom.project.path to true. Then Tree view started working.
  4. When I tried download file, I get notificiation about error.

I reinstalled package three times (using three different methods), sometimes it worked, suddenly stopped.

Atom Version: 0.181.0
System: Windows 7 (x64)
Thrown From: Remote-FTP package, v0.4.8

Stack Trace

Uncaught TypeError: Arguments to path.join must be strings

At path.js:201

TypeError: Arguments to path.join must be strings
  at f (path.js:201:13)
  at Object.filter (native)
  at Object.win32.join (path.js:206:38)
  at Directory.<anonymous> (C:\Users\pc\.atom\packages\Remote-FTP\lib\directory.js:27:31)
  at Directory.<anonymous> (C:\Users\pc\.atom\packages\Remote-FTP\lib\directory.js:27:47)
  at Directory.<anonymous> (C:\Users\pc\.atom\packages\Remote-FTP\lib\directory.js:27:47)
  at File.<anonymous> (C:\Users\pc\.atom\packages\Remote-FTP\lib\file.js:22:47)
  at C:\Users\pc\.atom\packages\Remote-FTP\lib\file.js:62:28
  at C:\Users\pc\.atom\packages\Remote-FTP\lib\client.js:320:16
  at WriteStream.<anonymous> (C:\Users\pc\.atom\packages\Remote-FTP\lib\connectors\ftp.js:198:20)
  at WriteStream.emit (events.js:138:20)
  at Socket.Readable.unpipe (_stream_readable.js:635:12)
  at unpipe (_stream_readable.js:585:9)
  at WriteStream.onfinish (_stream_readable.js:579:5)
  at WriteStream.g (events.js:202:16)
  at WriteStream.emit (events.js:138:20)
  at finishMaybe (_stream_writable.js:486:14)
  at endWritable (_stream_writable.js:495:3)
  at WriteStream.Writable.end (_stream_writable.js:461:5)
  at Socket.onend (_stream_readable.js:506:10)
  at Socket.g (events.js:202:16)
  at Socket.emit [as _emit] (events.js:138:20)
  at Object.cb (C:\Users\pc\.atom\packages\Remote-FTP\node_modules\ftp\lib\connection.js:578:18)
  at Parser.<anonymous> (C:\Users\pc\.atom\packages\Remote-FTP\node_modules\ftp\lib\connection.js:117:20)
  at Parser.emit (events.js:119:17)
  at Parser._write (C:\Users\pc\.atom\packages\Remote-FTP\node_modules\ftp\lib\parser.js:58:10)
  at doWrite (_stream_writable.js:303:12)
  at writeOrBuffer (_stream_writable.js:290:5)
  at Parser.Writable.write (_stream_writable.js:219:11)
  at Socket.ondata (C:\Users\pc\.atom\packages\Remote-FTP\node_modules\ftp\lib\connection.js:281:20)
  at Socket.emit (events.js:116:17)
  at readableAddChunk (_stream_readable.js:164:16)
  at Socket.Readable.push (_stream_readable.js:127:10)
  at TCP.onread (net.js:530:20)

Commands

  3x -3:56.5 remote-ftp:toggle (atom-text-editor.editor)
     -3:08.4 core:close (ol.tree-view.full-menu.list-tree.has-collapsable-children.focusable-panel)
     -2:51.2 core:copy (atom-text-editor.editor)
     -2:49.6 emmet:insert-formatted-line-break-only (atom-text-editor.editor)
     -2:49.6 editor:newline (atom-text-editor.editor)
     -2:49.4 core:paste (atom-text-editor.editor)
     -2:48.3 core:save (atom-text-editor.editor)
     -1:48.5 css-comb:comb (ol.tree-view.full-menu.list-tree.has-collapsable-children.focusable-panel)
     -1:45.2 core:save (ol.tree-view.full-menu.list-tree.has-collapsable-children.focusable-panel)
     -1:39.9 autoflow:reflow-selection (ol.tree-view.full-menu.list-tree.has-collapsable-children.focusable-panel)
     -1:35.3 window:toggle-dev-tools (atom-text-editor.editor)
     -1:03.8 remote-ftp:toggle (ol.tree-view.full-menu.list-tree.has-collapsable-children.focusable-panel)

Config

{
  "core": {
    "themes": [
      "one-light-ui",
      "one-light-syntax"
    ],
    "projectHome": "C:\\Users\\pc\\Documents\\[WWW] in progress vagrant",
    "autoHideMenuBar": true,
    "disabledPackages": [
      "language-coffee-script",
      "project-manager",
      "filetype-color"
    ]
  },
  "Remote-FTP": {}
}

Installed Packages

# User
atom-beautify, v0.21.3
atom-color-highlight, v3.0.8
atom-css-comb, v0.6.4
emmet, v2.3.3
file-icons, v1.4.11
language-smarty-php, v0.5.0
linter, v0.11.1
linter-bootlint, v0.0.3
linter-csslint, v0.0.11
linter-htmlhint, v0.0.8
linter-jshint, v0.1.0
linter-less, v0.3.1
linter-php, v0.0.11
linter-pylint, v0.2.0
linter-scss-lint, v0.0.11
linter-tidy, v1.0.0
linter-xmllint, v0.0.5
minimap, v4.2.3
remote-edit, v1.6.4
Remote-FTP, v0.4.8
sync-settings, v0.2.1

# Dev
No dev packages

I checked previous issues and I saw that this bug is Atom fault.

Does not properly handle errors

When a serious connection error occurs and triggers the close handler sftp2.js does not correctly handle it. The UI appears as still connected but becomes unresponsive.

self.ssh2.on('close', function () {
    self.disconnect();
    self.emit('closed');
});
self.ssh2.on('error', function (err) {
    self.emit('error', err);

    // err.code == "ECONNRESET"
});

Steps to reproduce

  1. Connect to an sftp server
  2. Disconnect from the internet (I just pulled out my network cable)
  3. Refresh a folder and wait
  4. The error handle will run
  5. The close handler will run, however the UI appears as still connected which obviosuly does not work. From that point it becomes pretty much unresponsive.

Stopped working in 0.180

atom.project.path === undefined

Reverted back to 0.179. Atom did not mention any changes in the atom.project API.

Uncaught TypeError: Cannot read property 'item' of undefined

[Enter steps to reproduce below:]

  1. connect my server
  2. create new file

Atom Version: 0.177.0
System: Mac OS X 10.10.2
Thrown From: Remote-FTP package, v0.4.7

Stack Trace

Uncaught TypeError: Cannot read property 'item' of undefined

At /Users/TaeYeongKIM/.atom/packages/Remote-FTP/lib/remote-ftp.js:127

TypeError: Cannot read property 'item' of undefined
  at HTMLDivElement.<anonymous> (/Users/TaeYeongKIM/.atom/packages/Remote-FTP/lib/remote-ftp.js:127:51)
  at HTMLDivElement.handler (/Applications/Atom.app/Contents/Resources/app/src/space-pen-extensions.js:110:34)
  at HTMLDivElement.jQuery.event.dispatch (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4681:9)
  at HTMLDivElement.elemData.handle (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4359:46)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:243:29)
  at CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:3:61)
  at CommandRegistry.module.exports.CommandRegistry.dispatch (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:156:19)
  at AddDialog.jQuery.fn.trigger (/Applications/Atom.app/Contents/Resources/app/src/space-pen-extensions.js:64:23)
  at AddDialog.module.exports.AddDialog.onConfirm (/Users/TaeYeongKIM/.atom/packages/Remote-FTP/lib/dialogs/add-dialog.js:22:8)
  at HTMLDivElement.<anonymous> (/Users/TaeYeongKIM/.atom/packages/Remote-FTP/lib/dialogs/dialog.js:49:9)
  at HTMLDivElement.handler (/Applications/Atom.app/Contents/Resources/app/src/space-pen-extensions.js:115:32)
  at HTMLDivElement.jQuery.event.dispatch (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4681:9)
  at HTMLDivElement.elemData.handle (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4359:46)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:243:29)
  at /Applications/Atom.app/Contents/Resources/app/src/command-registry.js:3:61
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:558:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:396:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/Applications/Atom.app/Contents/Resources/app/src/window-event-handler.js:170:20)

Commands

  3x -7:15.6 editor:toggle-line-comments (atom-text-editor.editor)
  4x -7:07.9 tree-view:toggle (atom-text-editor.editor)
     -0:16.1 remote-ftp:toggle (ol.tree-view.full-menu.list-tree.has-collapsable-children.focusable-panel)
     -0:00.7 core:confirm (atom-text-editor.editor.mini)

Config

{
  "core": {
    "themes": [
      "atom-dark-ui",
      "atom-dark-syntax"
    ]
  }
}

Installed Packages

# User
Remote-FTP, v0.4.7
highlight-line, v0.9.3
minimap, v4.1.0
project-switcher, v0.1.0

# Dev
No dev packages

/cc @atom/core

Uncaught ReferenceError: log is not defined

[Enter steps to reproduce below:]

  1. try to change name remote folder.
  2. cannot connect again.

Atom Version: 0.182.0
System: window 7 64bit
Thrown From: Remote-FTP package, v0.6.1

Stack Trace

Uncaught ReferenceError: log is not defined

At C:\Users\Administrator\.atom\packages\Remote-FTP\lib\client.js:176

ReferenceError: log is not defined
    at info.debug (C:\Users\Administrator\.atom\packages\Remote-FTP\lib\client.js:176:20)
    at self.info.debug (C:\Users\Administrator\.atom\packages\Remote-FTP\lib\connectors\ftp.js:55:22)
    at Socket.ondata (C:\Users\Administrator\.atom\packages\Remote-FTP\node_modules\ftp\lib\connection.js:279:12)
    at Socket.emit (events.js:116:17)
    at readableAddChunk (_stream_readable.js:164:16)
    at Socket.Readable.push (_stream_readable.js:127:10)
    at TCP.onread (net.js:530:20)

Commands

     -0:23.9 remote-ftp:toggle (atom-text-editor.editor)
     -0:21.6 application:open-folder (atom-text-editor.editor)
     -0:09.8 remote-ftp:toggle (ul.list-inline.tab-bar.inset-panel)

Config

{
  "core": {
    "themes": [
      "atom-dark-ui",
      "atom-dark-syntax"
    ],
    "disabledPackages": [
      "remote-edit",
      "remote-sync"
    ]
  },
  "Remote-FTP": {}
}

Installed Packages

# User
Remote-FTP, v0.6.1

# Dev
No dev packages

Uncaught TypeError: Cannot read property 'connect' of null

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 0.165.0
System: Mac OS X 10.10
Thrown From: Remote-FTP package, v0.3.0

Stack Trace

Uncaught TypeError: Cannot read property 'connect' of null

At /Users/scottbrown/.atom/packages/Remote-FTP/lib/client.js:169

TypeError: Cannot read property 'connect' of null
  at Client.module.exports.Client.connect (/Users/scottbrown/.atom/packages/Remote-FTP/lib/client.js:169:17)
  at Client.<anonymous> (/Users/scottbrown/.atom/packages/Remote-FTP/lib/views/tree-view.js:154:28)
  at /Users/scottbrown/.atom/packages/Remote-FTP/lib/client.js:86:14
  at fs.js:295:14
  at Object.oncomplete (fs.js:93:15)

Commands

Config

{
  "core": {
    "disabledPackages": [
      "wrap-guide",
      "livereload"
    ]
  }
}

Installed Packages

# User
Remote-FTP, v0.3.0
color-picker, v1.2.6
emmet, v2.3.0
local-history, v2.0.0

# Dev
No dev packages

/cc @atom/core

Support for multiple servers and use without project

I only work against FTP-servers and thats why i have this question, would it be possible to add support for multiple servers?

Also is it possible to show the pane for remote-ftp but hide the atom file tree? That file tree is of no use to me when i use remote-ftp.

Third small question, is it possible to add an option to move the remote-ftp pane to the right side instead?

Download/Upload progress

Client.ftp._pasvSocket contains bytesRead and bytesWritten so it might be possible to create a progress event

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.