{"id":13631029,"url":"https://github.com/jedrichards/grunt-rsync","last_synced_at":"2025-04-05T14:07:30.082Z","repository":{"id":5292555,"uuid":"6473204","full_name":"jedrichards/grunt-rsync","owner":"jedrichards","description":"A Grunt task for accessing the file copying and syncing capabilities of the rsync command line utility.","archived":false,"fork":false,"pushed_at":"2018-08-07T15:15:43.000Z","size":31,"stargazers_count":221,"open_issues_count":0,"forks_count":26,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-04-27T22:43:01.323Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"rstacruz/flatdoc","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jedrichards.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-10-31T11:57:17.000Z","updated_at":"2023-06-15T23:52:05.000Z","dependencies_parsed_at":"2022-09-04T23:01:19.258Z","dependency_job_id":null,"html_url":"https://github.com/jedrichards/grunt-rsync","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedrichards%2Fgrunt-rsync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedrichards%2Fgrunt-rsync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedrichards%2Fgrunt-rsync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedrichards%2Fgrunt-rsync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jedrichards","download_url":"https://codeload.github.com/jedrichards/grunt-rsync/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247345853,"owners_count":20924102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T22:02:07.694Z","updated_at":"2025-04-05T14:07:30.065Z","avatar_url":"https://github.com/jedrichards.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"## grunt-rsync\n\n![npm version](http://img.shields.io/npm/v/grunt-rsync.svg?style=flat)\n![npm downloads per month](http://img.shields.io/npm/dm/grunt-rsync.svg?style=flat)\n![david dependencies](http://img.shields.io/david/jedrichards/grunt-rsync.svg?style=flat)\n\nA Grunt multitask for accessing the file copying and syncing capabilities of the rsync command line utility.\n\n:warning: Looking for a non-Grunt related simple Node wrapper for rsync? Try this repo's parent tool [rsyncwrapper](https://github.com/jedrichards/rsyncwrapper) for the core functionality.\n\n### Release notes\n\n- `3.0.0` Updated to `rsyncwrapper 3.0.0`.\n- `2.0.0` Updated to `rsyncwrapper 2.0.0`. Updated dev dependencies. Tested on Grunt `1.0.1`.\n- `1.0.0` Updated to `rsyncwrapper 1.0.0`. Tested on Node `5.3.0`. `grunt` is no longer a peer dependency.\n- `0.6.2` Updated to `rsyncwrapper 0.4.1`.\n- `0.6.0` Updated to `rsyncwrapper 0.4.0`.\n- `0.5.0` Updated to `rsyncwrapper 0.3.0`.\n- `0.4.0` Updated to `rsyncwrapper 0.2.0`.\n- `0.3.0` Updated to `rsyncwrapper 0.1.0`. Some changes under the hood there, so a minor version bump seems appropriate. `src` values that include wildcards should now be properly expanded by the shell.\n- `0.2.0` Updated task to properly use the config [options](http://gruntjs.com/configuring-tasks#options) object\n- `0.1.0` Grunt `0.4` compatibility\n- `0.0.5` Initial releases, Grunt `0.3` compatible\n\n### Prerequisites\n\nA reasonably modern version of rsync (\u003e=`v2.6.9`) in your `PATH`.\n\n### Installation\n\n    $ npm install grunt-rsync\n\n### Usage\n\nAdd a `rsync` object to your Grunt config and `grunt.loadNpmTasks(\"grunt-rsync\")`.\n\n\u003e Note: `grunt-rsync` uses the normalised target/task-level options for multitasks as described [here](http://gruntjs.com/configuring-tasks#options).)\n\n### Options\n\nThis task uses [rsyncwrapper](https://github.com/jedrichards/rsyncwrapper) under the hood.\n\nAll options are passed verbatim to rsyncwrapper and are documented in that project's README [here](https://github.com/jedrichards/rsyncwrapper#options).\n\n### Example\n\nThe following task config defines three targets.\n\nThe `dist` target could be used to create a distribution of a website ready for deployment, excluding files related to Git and uncompiled SCSS.\n\nThe `stage` and `prod` targets could be used to copy the distribution to the relevant remote hosts over ssh.\n\n```javascript\nrsync: {\n    options: {\n        args: [\"--verbose\"],\n        exclude: [\".git*\",\"*.scss\",\"node_modules\"],\n        recursive: true\n    },\n    dist: {\n        options: {\n            src: \"./\",\n            dest: \"../dist\"\n        }\n    },\n    stage: {\n        options: {\n            src: \"../dist/\",\n            dest: \"/var/www/site\",\n            host: \"user@staging-host\",\n            delete: true // Careful this option could cause data loss, read the docs!\n        }\n    },\n    prod: {\n        options: {\n            src: \"../dist/\",\n            dest: \"/var/www/site\",\n            host: \"user@live-host\",\n            delete: true // Careful this option could cause data loss, read the docs!\n        }\n    }\n}\n```\n\n### Wildcards, exclude patterns, globbing etc.\n\nAny wildcards expansions and/or exclude patterns and globbing of paths are handled either by the shell or rsync itself. So importantly this task does **not** use Grunt's in-built path expanding and globbing.\n\nFor more information on rsync's syntax check the [rsync manpages](http://linux.die.net/man/1/rsync).\n\nFor information about how this task's options relate to rsync's functionality check [rsyncwrapper](https://github.com/jedrichards/rsyncwrapper).\n\n### Testing\n\nBasic tests are run on [Vows Async BDD](http://vowsjs.org/) via this package's Gruntfile. To test `grunt-rsync` clone the repo and install the devDependancies:\n\n    $ npm install --dev\n    $ npm test\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedrichards%2Fgrunt-rsync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjedrichards%2Fgrunt-rsync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedrichards%2Fgrunt-rsync/lists"}