Join our webinar on Wednesday, June 26, at 1pm EDTHow Chia Mitigates Risk in the Crypto Industry.Register
Socket
Socket
Sign inDemoInstall

shipit-shared-copy

Package Overview
Dependencies
17
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    shipit-shared-copy

Copy unsourced files and directories, for Docker build.


Version published
Weekly downloads
1
Maintainers
1
Install size
6.36 MB
Created
Weekly downloads
 

Readme

Source

shipit-shared-copy

Build Status Dependency Status devDependency Status Join the chat at https://gitter.im/timkelty/shipit-shared

A set of tasks for Shipit used for symlinking persistent (un-sourced) files and directories on deploy.

Based on the concept of linked_files/linked_dirs from Capistrano

Features:

  • By default, the shared task is triggered on the updated event from shipit-deploy
  • All necessary directories are always created for you, whether you are linking a file or a directory.
  • Optionally set permissions on files.
  • Works via shipit-cli and grunt-shipit

Roadmap

  • Optionally copy example files, such as example config files

Install

npm install shipit-shared

Usage

Example shipitfile.js

module.exports = function (shipit) {
  require('shipit-deploy')(shipit);
  require('shipit-shared')(shipit);

  shipit.initConfig({
    default: {
      shared: {
        overwrite: true,
        dirs: [
          'public/storage',
          {
            path: 'db',
            overwrite: false,
            chmod: '-R 777',
          }
        ],
        files: [
          'config/environment.yml',
          {
            path: 'config/database.yml',
            overwrite: false,
            chmod: '755',
          }
        ],
      }
    }
  });
};

To trigger on the deploy published event, you can simply deploy:

shipit staging deploy

Or you can run the tasks separately :

shipit staging shared
    shipit staging shared:create-dirs
    shipit staging shared:link
        shipit staging shared:link:dirs
        shipit staging shared:link:files

Options shipit.config.shared

shared.dirs, shared.files

Type: Array

An array of files/directories to symlink into current. String values inherit default settings, objects allow per-item configuration:

'public/storage'
{
  path: 'db',
  overwrite: true,
  chmod: '-R 777'
}
path

Type: String

Path to the shared file/directory (relative to current).

overwrite

Type: Boolean

If the target of the symlink exists in current, remove it before creating symlink.

chmod

Type: String

Options passed to the chmod command for the given path.

shared.basePath

Type: String Default: path.join(shipit.config.deployTo, 'shared')

The path where your shared files reside.

shared.overwrite

Type: Boolean Default: false

If true, the target of your symlink (in current), will be removed (via rm -rf) before creating the symlink. Under normal circumstances, this is fine, as files in current have come directly from a git checkout.

If false and the target of your symlink is a file or directory, and error is thrown and the task aborted.

The default setting of false is a safety precaution to prevent unintentionally losing data. See https://github.com/timkelty/shipit-shared/issues/17

shared.symlinkPath

Type: String Default: shared.basePath

The path that will serve as the source for your symlink. This is usually the same as shared.basePath, however it can be necessary to set this in a chroot environment.

shared.triggerEvent

Type: String, Boolean Default: updated

Trigger shared task on given event name. Set to false to prevent task from listening to any events. (note: Some part of shipit-shared besides initConfig needs to be run before it can listen for events)

Events

  • shared
    • shared:prepare
      • shared:create-dirs
        • Emit event sharedDirsCreated
      • shared:set-permissions
        • Emit event sharedPermissionsSet
    • shared:link
      • shared:link-dirs
        • Emit event sharedFilesDirs
      • shared:link-files
        • Emit event sharedFilesLinked
    • shared:end
      • Emit event sharedEnd

License

MIT

Keywords

FAQs

Last updated on 27 Feb 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc