GithubHelp home page GithubHelp logo

grunt-ftpush's People

Contributors

chriswren avatar inossidabile avatar manuelcabral avatar ricardovsilva avatar s7anley 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

grunt-ftpush's Issues

grunt-ftppush follows symlinks

grunt-ftppush follows symlinks and uploads symlinked folders twice. There should be an option to disable following symlinks.

Warning: Cannot delete file

Works like a charm, but sometimes I get this error and I'm forced to restart the task. It will eventually work

Warning: Cannot delete file: 17:04 randomfile.php --> Error: 550 Could not delete / www/17:04 randomfile.php: No such file or directory Use --force to continue.

qa1tkwn

In this specific case, that's not a file to be deleted or updated. It's just a random file. Happened on other files as well.

thanks

Got diff but doesn't upload

Hi, I have this problem.
When I launch the ftpush task this is the outout in console:

 Got diff for / 6 0 0
Got diff for /bower_components 0 0 0
Got diff for /bower_components/requirejs 1 0 0
Got diff for /bower_components/sass-bootstrap 0 0 0
Got diff for /bower_components/sass-bootstrap/fonts 4 0 0
Got diff for /fonts 12 0 0
Got diff for /images 2 0 0
Got diff for /images/book 2 0 0
Got diff for /images/promotion 1 0 0
Got diff for /images/userpoints 2 0 0
Got diff for /scripts 1 0 0
Got diff for /scripts/vendor 1 0 0
Got diff for /styles 1 0 0
Got diff for /templates 2 0 0
Got diff for /uploads 0 0 0
Got diff for /uploads/book 5 0 0
Got diff for /uploads/labels 1 0 0
Got diff for /uploads/promotion 2 0 0
Got diff for /uploads/userpoints 2 0 0
Uploaded file: .htaccess to: /

why it doesn't upload all the files I've changed?

Thank you

Alberto

SFTP Support

So it is much like extending the "track changes" feature to grunt-sftp-deploy too.

Bad path on server, impossible upload

Configuration:

        ftpush: {
            build: {
                auth: {
                    host: 'ftp.vlastne-byvanie.sk',
                    port: 21,
                    authKey: 'key1'
                },
                src: 'tt',
                dest: '/a'
            }
        }

grunt-contrib-ftp

I have tried many combinations of src-dest, but without success.

On the server is created dir with name \a\ ( dir with name a should be created ) and the same with files.

Allow .ftppass file path to be configurable

Would be nice if I can put all my credential files and non-repo files in a folder called secret/ rather than having to exclude one by one each new file in some kind of .ignore file. Would also help keep secret files secret form other devs with less permissions.

    // don't keep passwords in source control
    config: 'secret/.servers.json',

(inspired by https://github.com/andrewrjones/grunt-ssh)

Also, would probably make sense to put host and port info into the json file as the host and port generally don't change for a given authentication process.

Diff for large file names fails

When using large files names the diff seems to fail:

Warning: Cannot delete file: b8079fd5616ee9b5d34b8a93699c3e38a --> Error: 550 /domainsdomain.com/core/cache/b8079fd5616ee9b5d34b8a93699c3e38a: No such file or directory Use --force to continue.

Aborted due to warnings.

ftpush seems to append the path twice

When I try to use ftpush to upload my site, it seems to be doubling up the paths.

I thought I knew what this error was saying, but then I looked at the code that generates it, and I no longer have any idea what's going on.

Warning: Cannot delete file: /dev.bmc/.gitignore --> Error: 550 /dev.bmc/dev.bmc/.gitignore: No such file or directory Use --force to continue.

If I actually give it the entire path, I get something morelike this:

Warning: Cannot delete file: /dev.bmc/blog/wp-content/themes/benchmark/404.php --> Error: 550 /dev.bmc/blog/wp-content/themes/benchmark/dev.bmc/blog/wp-content/themes/benchmark/404.php: No such file or directory Use --force to continue.

Any idea what is going on?

Fails after trying to delete a file that doesn't exist

I am running into this error whenever I try and upload. It tries to delete "/public_html/change/bower_components/font-awesome/src/3.2.1/icon/craigmcn" which doesn't exist. There is no file with that name in my dist folder (which is what I'm uploading). craigmcn is my ftp username specified in my .ftppass file. I'm not sure how its joining those two pieces of information together.

>> Got diff for /styles 2 0 0
>> Uploaded file: .htaccess to: /
Warning: Cannot delete file: craigmcn         4096 Mar  8 18:05 building --> Error: 550 Could not delete /public_html/change/bower_components/font-awesome/src/3.2.1/icon/craigmcn         4096 Mar  8 18:05 building: No such file or directory Use --force to continue.

Aborted due to warnings.

I've also tried with --force and --simple, same error with both.

Config

ftpush: {
            build: {
                auth: {
                    host: 'craigmcnamara.com',
                    port: 21,
                    authKey: 'key1'
                },
                src: '<%= yeoman.dist %>',
                dest: '/public_html/change',
                exclusions: ['<%= yeoman.dist %>/**/.DS_Store', '<%= yeoman.dist %>/**/Thumbs.db', '<%= yeoman.dist %>/tmp'],
                simple: false,
                keep: [],
                useList: false
            }
        },

Stat command unsupported on some servers

Filezilla server in particular does not support the STAT command. This means that when I try to deploy, if the remote directory structure does not exist beforehand (even if empty) the deploy stalls and throws:

Error: read ECONNRESET
    at errnoException (net.js:901:11)
    at TCP.onread (net.js:556:19)

Uploads one file and then stalls forever

I'm trying to use ftpush to upload css files after compiling sass and minifying the css. So, there are two css files in my local directory that are supposed to get uploaded. This is the result I always get:

Running "ftpush:sass" (ftpush) task
>> Authenticated as username
>> Got diff for / 2 0 0
>> Uploaded file: styles.css to: /

And then it just stays like that forever. No error code or anything, even after waiting over half an hour. I'm running Ubuntu 14.04.

Blank directories created / directories not added when Simple=true

First off great work on this plugin, just what I'm looking for in terms of my workflow. Unfortunately I'm having an issue when simple=true is set.

When Simple=false everything works as expected and all directories are created and uploaded without issue.

However when I switch to simple=true I am experiencing issues with blank directories being created in the root and proper directory structures not being created.

For example I have a directory '/includes' which already exists locally and on the remote server. If I add a file 'new_file.php' to that directory and run ftpush then the file will be uploaded successfully to /includes. However a new blank directory called "\includes" is added to the remote root.

If I then add new directory and file locally at /includes/test_folder/test_file.php on running ftpush a single blank directory is added to the remote server root with name "\includes\test_folder" and the following warning is outputted:

Uploaded file: test_file.php to: \includes\test_folder
Fatal error: read ECONNRESET

\includes\test_folder is not created. If I go and manually add the \includes\test_folder on the remote server and attempt ftpush it will work and test_file.php is uploaded.

My setup is as follows:

auth: {
host: 'host',
port: 21,
authKey: 'dev'
},
src: '',
dest: '/',
exclusions: ['assets/pdf''],
keep: ['/assets/pdf/*.pdf'],
simple:true
}

I've tired changing dest to be a blank string but it has no effect. Please let me know if you would like me to provide any other information on this.

ftpush fails to create directories

ftpush doesn't seem to create directories.

Running "ftpush:dist" (ftpush) task
[D] Task source: /Users/hawken/Dropbox/Benchmark Website/site/theme/node_modules/grunt-ftpush/tasks/ftpush.coffee
>> Authenticated as hawkrives
[D] Touch '/dev.bmc/wp-content/themes/benchmark/'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/_'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/_/fonts'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/_/img'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/_/img/icons'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/_/img/samples'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/_/js'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/inc'
>> Got diff for / 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /_ 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /_/fonts 8 0 0
[D] Diff { upload: 
   [ [ 'bosnia-thin-bold.eot', 1375111258000 ],
     [ 'bosnia-thin-bold.svg', 1375111258000 ],
     [ 'bosnia-thin-bold.ttf', 1375111258000 ],
     [ 'bosnia-thin-bold.woff', 1375111258000 ],
     [ 'bosnia-thin-normal.eot', 1375111258000 ],
     [ 'bosnia-thin-normal.svg', 1375111258000 ],
     [ 'bosnia-thin-normal.ttf', 1375111258000 ],
     [ 'bosnia-thin-normal.woff', 1375111258000 ] ],
  rm: [],
  rmDir: [] }
[D] Upload 'bosnia-thin-bold.eot' '/_/fonts' 1375111258000
[D] Upload 'bosnia-thin-bold.svg' '/_/fonts' 1375111258000
[D] Upload 'bosnia-thin-bold.ttf' '/_/fonts' 1375111258000
[D] Upload 'bosnia-thin-bold.woff' '/_/fonts' 1375111258000
[D] Upload 'bosnia-thin-normal.eot' '/_/fonts' 1375111258000
[D] Upload 'bosnia-thin-normal.svg' '/_/fonts' 1375111258000
[D] Upload 'bosnia-thin-normal.ttf' '/_/fonts' 1375111258000
[D] Upload 'bosnia-thin-normal.woff' '/_/fonts' 1375111258000
>> Got diff for /_/img 6 0 0
[D] Diff { upload: 
   [ [ 'chalk.png', 1375111258000 ],
     [ 'light_wool.png', 1375111258000 ],
     [ '[email protected]', 1375111258000 ],
     [ 'logo.png', 1375111258000 ],
     [ 'logo.svg', 1375111258000 ],
     [ 'low_contrast_linen.png', 1375111258000 ] ],
  rm: [],
  rmDir: [] }
[D] Upload 'chalk.png' '/_/img' 1375111258000
[D] Upload 'light_wool.png' '/_/img' 1375111258000
[D] Upload '[email protected]' '/_/img' 1375111258000
[D] Upload 'logo.png' '/_/img' 1375111258000
[D] Upload 'logo.svg' '/_/img' 1375111258000
[D] Upload 'low_contrast_linen.png' '/_/img' 1375111258000
>> Got diff for /_/img/icons 12 0 0
[D] Diff { upload: 
   [ [ 'badge.png', 1375111258000 ],
     [ 'badge.svg', 1375111258000 ],
     [ 'group.png', 1375111258000 ],
     [ 'group.svg', 1375111258000 ],
     [ 'home.png', 1375111258000 ],
     [ 'home.v1.png', 1375111258000 ],
     [ 'plant.png', 1375111258000 ],
     [ 'plant.svg', 1375111258000 ],
     [ 'suitcase.png', 1375111258000 ],
     [ 'suitcase.svg', 1375111258000 ],
     [ 'tower.png', 1375111258000 ],
     [ 'tower.svg', 1375111258000 ] ],
  rm: [],
  rmDir: [] }
[D] Upload 'badge.png' '/_/img/icons' 1375111258000
[D] Upload 'badge.svg' '/_/img/icons' 1375111258000
[D] Upload 'group.png' '/_/img/icons' 1375111258000
[D] Upload 'group.svg' '/_/img/icons' 1375111258000
[D] Upload 'home.png' '/_/img/icons' 1375111258000
[D] Upload 'home.v1.png' '/_/img/icons' 1375111258000
[D] Upload 'plant.png' '/_/img/icons' 1375111258000
[D] Upload 'plant.svg' '/_/img/icons' 1375111258000
[D] Upload 'suitcase.png' '/_/img/icons' 1375111258000
[D] Upload 'suitcase.svg' '/_/img/icons' 1375111258000
[D] Upload 'tower.png' '/_/img/icons' 1375111258000
[D] Upload 'tower.svg' '/_/img/icons' 1375111258000
>> Got diff for /_/img/samples 3 0 0
[D] Diff { upload: 
   [ [ 'abla.jpg', 1375111258000 ],
     [ 'faubush.jpg', 1375111258000 ],
     [ 'millsap.jpg', 1375111258000 ] ],
  rm: [],
  rmDir: [] }
[D] Upload 'abla.jpg' '/_/img/samples' 1375111258000
[D] Upload 'faubush.jpg' '/_/img/samples' 1375111258000
[D] Upload 'millsap.jpg' '/_/img/samples' 1375111258000
>> Got diff for /_/js 6 0 0
[D] Diff { upload: 
   [ [ 'foundation.min.js', 1375111258000 ],
     [ 'foundation.orbit.js', 1375111258000 ],
     [ 'jquery.min.js', 1375111258000 ],
     [ 'jquery.transit.min.js', 1375111258000 ],
     [ 'magnific-popup.min.js', 1375111258000 ],
     [ 'modernizr-2.6.2.js', 1375111258000 ] ],
  rm: [],
  rmDir: [] }
[D] Upload 'foundation.min.js' '/_/js' 1375111258000
[D] Upload 'foundation.orbit.js' '/_/js' 1375111258000
[D] Upload 'jquery.min.js' '/_/js' 1375111258000
[D] Upload 'jquery.transit.min.js' '/_/js' 1375111258000
[D] Upload 'magnific-popup.min.js' '/_/js' 1375111258000
[D] Upload 'modernizr-2.6.2.js' '/_/js' 1375111258000
>> Got diff for /inc 5 0 0
[D] Diff { upload: 
   [ [ 'custom-header.php', 1375111258000 ],
     [ 'customizer.php', 1375111258000 ],
     [ 'extras.php', 1375111258000 ],
     [ 'jetpack.php', 1375111258000 ],
     [ 'template-tags.php', 1375111258000 ] ],
  rm: [],
  rmDir: [] }
[D] Upload 'custom-header.php' '/inc' 1375111258000
[D] Upload 'customizer.php' '/inc' 1375111258000
[D] Upload 'extras.php' '/inc' 1375111258000
[D] Upload 'jetpack.php' '/inc' 1375111258000
[D] Upload 'template-tags.php' '/inc' 1375111258000
>> Uploaded file: bosnia-thin-bold.eot to: /_/fonts

If I go create _/fonts before running the task, ftpush makes it through the fonts folder, but sticks on img โ€” which, combined with the fact that no folders are showing up on the server, makes me think that ftpush is failing to create the directory structure.

Creating New Directory not working

I'm trying to upload a couple of things onto an ftp server but I keep getting Fatal error: read ECONNRESET.

I'm running on ebug mode and this is what I get:

Debug
[D] Switching to simple mode...
[D] Touch 'test'
[D] Touch 'test/app'
[D] Touch 'test/app/product'
[D] Touch 'test/app/product/resources'
[D] Touch 'test/app/product/resources/css'
[D] Upload 'app.css' '/css' 'f04f036da18507d19e4fcb94c0285897'
Fatal error: read ECONNRESET

553 prohibited directory name + ECONNRESET

Hi there, i have used grunt-ftp-deploy and it works fine, but i like the idea of incremental only uploads that you have built into yours, but i cannot get it to work.

Below is a sample of the debug output:

[D] Diff { upload:
   [ [ 'jquery-1.10.2.min.js', '11468602df014a21b203dc9bcd84d369' ],
     [ 'modernizr-2.6.2.min.js', '4747d88a589eb8b864e546af80acb111' ] ],
  rm: [],
  rmDir: [] }
[D] Upload 'jquery-1.10.2.min.js' '\\assets\\js\\vendor' '11468602df014a21b203dc
9bcd84d369'
[D] Upload 'modernizr-2.6.2.min.js' '\\assets\\js\\vendor' '4747d88a589eb8b864e5
46af80acb111'
[D] Remote folder wasn't creted (isn't empty?) public_html\test\wp-content\theme
s\jayseventwo\assets\less --> Error: 553 Prohibited directory name

and at the end:

>> Uploaded file: .editorconfig to: \
Fatal error: read ECONNRESET

I have integrated this with the WordPress Roots starter theme (roots.io) that uses grunt.

Any ideas as to what is going wrong, especially since ftp-deploy works fine?

No username password throws error

I don't want to store my credentials in file so I tried to run it without .ftppass (like I used to in ftp-deploy) but im getting this exception (instead user/pass prompt):

Authentication error: Error: Login not accepted

Error when trying to upload a new directory

I'm receiving an error when trying to upload a directory that doesn't yet exist on the remote ftp server.

Error: read ECONNRESET
    at errnoException (net.js:901:11)
    at TCP.onread (net.js:556:19)

I'm using filezilla on the remote and in it's log it's fine until ftpush tries to touch a directory that doesn't exists. Filezilla then logs:

list dir/dir
550 Directory not found.
disconnected

Instead of creating the directory, ftpush is throwing the error.

I'm using ftpush v0.3.3

useless directories are made on server root

First, thanks for your great work. It really saves my time.

When i use ftpush, some directories named after what i uploaded (directories, sub directories) are made on my ftp server root.

Like below, if the 'src' directory is uploaded, i see 'somewhere_pkgname_\src' directory on the server root.

module.exports = function(grunt) {
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    ftpush: {
      build: {
        auth: {
          host: 'ftp.com',
          port: 21,
          authKey: 'key'
        },
        src: 'src',
        dest: 'somewhere/<%= pkg.name %>',
        simple: true
      }
    }
  });
  grunt.loadNpmTasks('grunt-contrib-ftpush');
  grunt.registerTask('default', ['ftpush:build']);
};

It only happens when the simple option is set true and <%= pkg.name %> is used for destination, but i should set simple option true because i've met this issue #26. Also, I use <%= pkg.name %> to avoid editing every single Gruntfile.js of my multiple, similar structured projects.

It's not that annoying to delete those directories, but hopefully there's a way around.

Warning: EACCES, permission denied '/.DocumentRevisions-V100'

I keep getting the following error when I try to use ftpush:

Running "ftpush:build" (ftpush) task
Warning: EACCES, permission denied '/.DocumentRevisions-V100' Use --force to continue.

Any ideas as to why? I'm trying to upload my files to godaddy shared hosting. I have used ftp_push in the past and everything has worked fine with it.

dest folder same name bug

ftpush: {
build: {
auth: {
host: '1.1.2.1',
port: 21,
authKey: 'key1'
},
src: '../j/demo/',
dest: '/demo/j/demo/'
}
}

bug: Fatal error: read ECONNRESET
because: dest: '/demo/j/demo/' demo have twice

ftpush fails on first contact with an empty directory

Running "ftpush:dist" (ftpush) task
[D] Task source: /Users/hawken/Dropbox/Benchmark Website/site/theme/node_modules/grunt-ftpush/tasks/ftpush.coffee
>> Authenticated as hawkrives
[D] Touch '/dev.bmc/wp-content/themes/benchmark/'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/_'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/_/fonts'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/_/img'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/_/img/icons'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/_/img/samples'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/_/js'
[D] Touch '/dev.bmc/wp-content/themes/benchmark/inc'
>> Got diff for / 20 0 0
[D] Diff { upload: 
   [ [ '404.php', 1375118497000 ],
     [ 'archive.php', 1375118497000 ],
     [ 'comments.php', 1375118497000 ],
     [ 'content-page.php', 1375118497000 ],
     [ 'content-single.php', 1375118497000 ],
     [ 'content.php', 1375118497000 ],
     [ 'footer.php', 1375118497000 ],
     [ 'functions.php', 1375118497000 ],
     [ 'header.php', 1375118497000 ],
     [ 'image.php', 1375118497000 ],
     [ 'index.php', 1375118497000 ],
     [ 'no-results.php', 1375118497000 ],
     [ 'page.php', 1375118497000 ],
     [ 'screenshot.png', 1375118497000 ],
     [ 'search.php', 1375118497000 ],
     [ 'searchform.php', 1375118497000 ],
     [ 'sidebar.php', 1375118497000 ],
     [ 'single-proof.php', 1375118497000 ],
     [ 'single.php', 1375118497000 ],
     [ 'style.css', 1375118497000 ] ],
  rm: [],
  rmDir: [] }
[D] Upload '404.php' '/' 1375118497000
[D] Upload 'archive.php' '/' 1375118497000
[D] Upload 'comments.php' '/' 1375118497000
[D] Upload 'content-page.php' '/' 1375118497000
[D] Upload 'content-single.php' '/' 1375118497000
[D] Upload 'content.php' '/' 1375118497000
[D] Upload 'footer.php' '/' 1375118497000
[D] Upload 'functions.php' '/' 1375118497000
[D] Upload 'header.php' '/' 1375118497000
[D] Upload 'image.php' '/' 1375118497000
[D] Upload 'index.php' '/' 1375118497000
[D] Upload 'no-results.php' '/' 1375118497000
[D] Upload 'page.php' '/' 1375118497000
[D] Upload 'screenshot.png' '/' 1375118497000
[D] Upload 'search.php' '/' 1375118497000
[D] Upload 'searchform.php' '/' 1375118497000
[D] Upload 'sidebar.php' '/' 1375118497000
[D] Upload 'single-proof.php' '/' 1375118497000
[D] Upload 'single.php' '/' 1375118497000
[D] Upload 'style.css' '/' 1375118497000

/Users/hawken/Dropbox/Benchmark Website/site/theme/node_modules/grunt-contrib-compass/node_modules/tmp/lib/tmp.js:260
  throw err;
        ^
TypeError: Cannot read property 'length' of undefined
    at /Users/hawken/Dropbox/Benchmark Website/site/theme/node_modules/grunt-ftpush/tasks/ftpush.coffee:245:22
    at entriesToList (/Users/hawken/Dropbox/Benchmark Website/site/theme/node_modules/grunt-ftpush/node_modules/jsftp/lib/jsftp.js:759:29)
    at /Users/hawken/Dropbox/Benchmark Website/site/theme/node_modules/grunt-ftpush/node_modules/jsftp/lib/jsftp.js:787:21
    at parse (/Users/hawken/Dropbox/Benchmark Website/site/theme/node_modules/grunt-ftpush/node_modules/jsftp/lib/jsftp.js:419:21)
    at onElement (/Users/hawken/Dropbox/Benchmark Website/site/theme/node_modules/grunt-ftpush/node_modules/jsftp/node_modules/streamer/core.js:195:36)
    at Socket.<anonymous> (/Users/hawken/Dropbox/Benchmark Website/site/theme/node_modules/grunt-ftpush/node_modules/jsftp/lib/jsftp.js:357:25)
    at Array.forEach (native)
    at Socket.<anonymous> (/Users/hawken/Dropbox/Benchmark Website/site/theme/node_modules/grunt-ftpush/node_modules/jsftp/lib/jsftp.js:338:23)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Socket.<anonymous> (_stream_readable.js:736:14)

ftpush appears to fail as soon as it hits the first empty directory.

(I've taken to blowing away both the .grunt/ftpush folder and the remote one on update, to remove an extra spot of altercation.)

Ftpush stalls and never restarts

I have the latest version of ftpush as part of my grunt package. Each time I try to push, I get a variation of some kind of stall.

I run

grunt ftpush

And get

>> Authenticated as user

And then nothing. Or sometimes a few files get pushed, but then a stall. The only consistency is that it never finishes and stalls at some point all the time. Ftpush is configured as

ftpush:{
        build:{
            auth:{
                host:'host',
                port:21,
                authKey:'key1' // found in .ftppass
            },
            src:'/Applications/AMPPS/www/projectdirectory/',
            dest:'/projectdirectory/',
            exclusions:['*/.DS_Store','.DS_Store','Archive.zip','.git','Gruntfile.js','node_modules','*.sql'],
            simple:true,
            useList:true
        }
    }

exclusions not working

Hi ino

I have this config section in Gruntfile.js:

    ftpush: {
            prod: {
                auth: {
                    host: 'ftp.xxxxxxxx.net',
                    port: 21,
                    authKey: 'myKey'
                },
                src: './web/',
                dest: '/www/upload/',
                exclusions: ['./web/**/.DS_Store']
            }
        },

There are a few .DS_Store files in ./web/ folder and subtree and all are sent to FTP. I don't understand why... I try delete .grunt folder as well as remote FTP folder, but still copying those MAC files...

213 Error when uploading existing file

Hi, I've had ftpush working successfully in the past, but now it only does if I start with an empty FTP directory. If I push again into an existing directory with only one updated file, I get a 213 error and a message that a file can't be uploaded.

I tried a run using --debug and saw that the file was getting added to the queue.

Happy to provide more info if you need it. Thanks.

Adding ftpush to grunt watch?

Hi there,

I'm fairly new to grunt and ftpush and I'm currently looking for a way to automatically upload my compiled css and js files to the server when my less files or main javascript have changed.

So in my Gruntfile.js I added this at the bottom:

grunt.loadNpmTasks('grunt-ftpush');

and this in the watch task:

grunt.initConfig({
    watch: {
      // other watch tasks
      ftpush: {
        build: {
          auth: {
            host: 'ftp.mydomain.com',
            port: 21,
            authKey: 'dev'
          },
          src: 'assets/test/',
          dest: '/assets/test/'
        }
      }
    },
  });

But I keep getting the following error when I run grunt watch:

Running "watch" task
Waiting...Verifying property watch.ftpush.files exists in config...ERROR
>> Unable to process task.
Warning: Required config property "watch.ftpush.files" missing.

I tried adding simple: true but that doesn't help.
Am I missing something? Thanks!

I don't get any error when FTP upload fails.

  1. File do exists on server.
  2. I edit file locally and grunt-ftpush "uploads" it without problems.
  3. There is still old file on server.
  4. If I try to upload same file fith Filezilla, I get "451 An error occured when processing the command 'STOR'."

Wrong URLs in package.json

Package.json contains wrong URLs to grunt-ftpush repository, homepage and issues tracker.

"inossidabile" is spelled wrongly as "inossidabule"

"keep" doesn't work with subfolders

When I use keep with a folder how is direct in the root directory it works perfect.
My working example:

ftpush: {
    build: {
        auth: {
            host: 'server.com',
            port: 21,
            authKey: 'key'
        },
        src: 'dist',
        dest: '/',
        keep: ['/folder']
    }
}

But if I use keep with a subfolder, all elements in the subfolder and the subfolder itself will be deleted on the server.

I tested it with:

keep: ['/folder/subfolder']
keep: ['/folder/subfolder/']
keep: ['/folder/subfolder/*']
keep: ['/folder/subfolder/**']

but nothing works.

I use Windows 7 and Node.js 0.10.31.

Feature Request: FTPS Support

First off, thanks for this. I've got it working and it is already saving me time and bandwidth. I do have a feature request though. It would be great to add the option to transfer via FTPS in addition to FTP.

Adding new directories instead of changing files in subfolders when pushing to FTP

I'm trying to push my files to my FTP using ftpush, but instead of updating files in subdirectories, its creating new folders with complete paths:
image

I'm running my environment on Windows, while my co-developer running on MacOS (using the same gruntfile and json files, doesn't seem to run into this issue.

Here's my config:

'sftp-deploy': {
			buildsftp: {
				auth: {
					host: login.live.host,
					port: 22,
					authKey: 'live'
				},
				cache: '<%= path.devAssets %>/dev/grunt/ftpush/live.json',
				src: '<%= path.root %>',
				dest: '/var/www/html/wp-content/themes/cvhelpr/',
				exclusions: [
					'_production',
					'.gitignore',
					'.git',
					'**/.DS_Store'
				],
				progress: true,
				simple: true
			}
		},

I'm not receiving errors when pushing to FTP, so I have no idea how to approach this issue.

I've tried both using simple: false and simple:true, but it's the same result.

Could this be related to node/npm or ftpush version?

Not doing anything [no errors]

With the exact same configuration, grunt-ftp-deploy works just fine. But when calling grunt ftpush, this is all that happens:

C:\wamp\www\site>grunt ftpush
Running "ftpush:build" (ftpush) task
C:\wamp\www\site>

Configuration:

'ftp-deploy': {
    build: {
        auth: {
            host: '127.0.0.1',
            port: 21
        },
        src: 'app',
        dest: 'root',
        exclusions: [
            'app/tmp',
            'app/node_modules',
            'app/composer.*',
            'app/webroot/.sass-cache',
            'app/webroot/config.rb',
            'app/webroot/js/full',
            'app/webroot/css/sass',
            '*.sql',
            '*.svn',
            '*.git',
        ],
        keep: [
            'app/webroot/img/uploads/*',
            'app/webroot/community/*',
        ]
    }
}       

Another thing I noticed was that I cannot seem to be able to set the current folder as src. How is this possible? I've tried setting src to '/', '', '', '*' but nothing has worked.

Upload freezes after one particular file

Hi there!

So, I've started to look into using this task, and I'm running into an issue that I'm hoping you at least have some ideas about:

I'm running the task the very first time now, and it freezes after I've finished uploading one particular file. There is no feedback on what's going on, it's just sitting there, chewing.

Are there any error messages I can activate? Any other way of figuring out where/why this fails?

Query about how it decides the state

So, now it's working very nicely, but I have one question about how it decides that something needs to be reuploaded.

My usecase is the following: Using grunt I build the deploy version, which is the one one that gets uploaded. Every time I build it, it cleans out the prior versions, and I now noticed that it will re-upload every single file, not just the ones that's actually changed (should've been one file changed, one removed and one added in my particular experiment).

I take it that rather than comparing the hash, it compares modification date? Or is it working off of something else that changes when I build a fresh copy?

Fatal error: read ETIMEDOUT

Tried to do a 2MB upload but it failed with "Fatal error: read ETIMEDOUT".

It did manage to upload the other ~50 files and create directories but couldn't do the last ~10.
(simple:false)

Unexpected token error

Hi there,

I have been using ftpush for quit a while now and have added it to my grunt watch command in one of my projects. As of today I'm getting an Unexpected token error, while nothing has changed to my Gruntfile.js or .ftppass files?

Running "ftpush:build" (ftpush) task
Warning: Unexpected token < Use --force to continue.

When I try to connect with the exact same FTP credentials everything works fine?
Any idea what might be causing this and how exactly do I use this --force parameter?

I removed my node_modules folder and reinstalled with npm install but that doesn't make a difference.

Thanks!

Error 550 on re-deployment of jQuery UI

Hi,
after first successful deployment using ftpush, the same task executed again fails with error 550 on files belonging to jQuery UI.

Relevant part from debug log:

[D] Switching to full synchronization mode...
[D] Touch '/public/components/'
[D] Touch '/public/components/fancybox'
[D] Touch '/public/components/fancybox/lib'
[D] Touch '/public/components/fancybox/source'
[D] Touch '/public/components/fancybox/source/helpers'
[D] Touch '/public/components/jquery'
[D] Touch '/public/components/jquery-migrate'
[D] Touch '/public/components/jquery-ui'
[D] Touch '/public/components/jquery-ui/ui'
[D] Touch '/public/components/jquery-ui/ui/i18n'
[D] Touch '/public/components/jquery-ui/ui/minified'
[D] Touch '/public/components/jquery-ui/ui/minified/i18n'
>> Got diff for / 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /fancybox 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /fancybox/lib 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /fancybox/source 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /fancybox/source/helpers 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /jquery 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /jquery-migrate 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /jquery-ui 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /jquery-ui/ui 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /jquery-ui/ui/i18n 2 2 0
[D] Diff { upload: 
[ [ 'jquery.ui.datepicker-en-NZ.js',
    'af985e8d034123f14696aa116027760d' ],
    [ 'jquery.ui.datepicker-pt.js',
    '195beac164d3b2cfc5b8d02e98353834' ] ],
rm: [ 'jquery.ui.', '874 Aug 26 01:41 jquery.ui.datepicker-pt.js' ],
rmDir: [] }
[D] Upload 'jquery.ui.datepicker-en-NZ.js' '/jquery-ui/ui/i18n' 'af985e8d034123f14696aa116027760d'
[D] Upload 'jquery.ui.datepicker-pt.js' '/jquery-ui/ui/i18n' '195beac164d3b2cfc5b8d02e98353834'
[D] Delete 'jquery.ui.' '/jquery-ui/ui/i18n'
[D] Delete '874 Aug 26 01:41 jquery.ui.datepicker-pt.js' '/jquery-ui/ui/i18n'
>> Got diff for /jquery-ui/ui/minified 2 1 0
[D] Diff { upload: 
[ [ 'jquery.ui.effect-fold.min.js',
    '8074c41343e8123a8567de8af452fc72' ],
    [ 'jquery.ui.tabs.min.js', '490d0168365536638cb63e97b69494b1' ] ],
rm: [ '18572 Aug 26 01:41 jquery.ui.tabs.min.js' ],
rmDir: [] }
[D] Upload 'jquery.ui.effect-fold.min.js' '/jquery-ui/ui/minified' '8074c41343e8123a8567de8af452fc72'
[D] Upload 'jquery.ui.tabs.min.js' '/jquery-ui/ui/minified' '490d0168365536638cb63e97b69494b1'
[D] Delete '18572 Aug 26 01:41 jquery.ui.tabs.min.js' '/jquery-ui/ui/minified'
>> Got diff for /jquery-ui/ui/minified/i18n 2 1 0
[D] Diff { upload: 
[ [ 'jquery.ui.datepicker-en-NZ.min.js',
    'b00b8ee629d0f9a434368318d44d53d6' ],
    [ 'jquery.ui.datepicker-id.min.js',
    '137bebad13d3b64779c7717eaa6a1c93' ] ],
rm: [ '01:41 jquery.ui.datepicker-id.min.js' ],
rmDir: [] }
[D] Upload 'jquery.ui.datepicker-en-NZ.min.js' '/jquery-ui/ui/minified/i18n' 'b00b8ee629d0f9a434368318d44d53d6'
[D] Upload 'jquery.ui.datepicker-id.min.js' '/jquery-ui/ui/minified/i18n' '137bebad13d3b64779c7717eaa6a1c93'
[D] Delete '01:41 jquery.ui.datepicker-id.min.js' '/jquery-ui/ui/minified/i18n'
Warning: Cannot delete file: jquery.ui. --> Error: 550 Delete operation failed. Use --force to continue.

It looks like some kind of filename parsing error, as it is trying to remove file "jquery.ui." which obviously doesn't exist. Weird think is that sometimes if fails on different file (while the file which failed previously is OK, according to the log).

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.