Browse Source

Add an option to copy symlinks (#191)

master
Olli Vanhoja 8 years ago
committed by Leo Lamprecht
parent
commit
1c7a13fe68
  1. 5
      bin/now-deploy.js
  2. 5
      lib/index.js

5
bin/now-deploy.js

@ -39,6 +39,7 @@ const argv = minimist(process.argv.slice(2), {
'version', 'version',
'debug', 'debug',
'force', 'force',
'links',
'login', 'login',
'no-clipboard', 'no-clipboard',
'forward-npm', 'forward-npm',
@ -55,6 +56,7 @@ const argv = minimist(process.argv.slice(2), {
force: 'f', force: 'f',
token: 't', token: 't',
forceSync: 'F', forceSync: 'F',
links: 'l',
login: 'L', login: 'L',
public: 'p', public: 'p',
'no-clipboard': 'C', 'no-clipboard': 'C',
@ -90,6 +92,7 @@ const help = () => {
-f, --force Force a new deployment even if nothing has changed -f, --force Force a new deployment even if nothing has changed
-t ${chalk.underline('TOKEN')}, --token=${chalk.underline('TOKEN')} Login token -t ${chalk.underline('TOKEN')}, --token=${chalk.underline('TOKEN')} Login token
-L, --login Configure login -L, --login Configure login
-l, --links Copy symlinks without resolving their target
-p, --public Deployment is public (${chalk.dim('`/_src`')} is exposed) [on for oss, off for premium] -p, --public Deployment is public (${chalk.dim('`/_src`')} is exposed) [on for oss, off for premium]
-e, --env Include an env var (e.g.: ${chalk.dim('`-e KEY=value`')}). Can appear many times. -e, --env Include an env var (e.g.: ${chalk.dim('`-e KEY=value`')}). Can appear many times.
-C, --no-clipboard Do not attempt to copy URL to clipboard -C, --no-clipboard Do not attempt to copy URL to clipboard
@ -158,6 +161,7 @@ const clipboard = !argv['no-clipboard']
const forwardNpm = argv['forward-npm'] const forwardNpm = argv['forward-npm']
const forceSync = argv.forceSync const forceSync = argv.forceSync
const shouldLogin = argv.login const shouldLogin = argv.login
const followSymlinks = !argv.links
const wantsPublic = argv.public const wantsPublic = argv.public
const deploymentName = argv.name || false const deploymentName = argv.name || false
const apiUrl = argv.url || 'https://api.zeit.co' const apiUrl = argv.url || 'https://api.zeit.co'
@ -459,6 +463,7 @@ async function sync(token) {
env, env,
deploymentType, deploymentType,
deploymentName, deploymentName,
followSymlinks,
forceNew, forceNew,
forceSync, forceSync,
forwardNpm: alwaysForwardNpm || forwardNpm, forwardNpm: alwaysForwardNpm || forwardNpm,

5
lib/index.js

@ -10,7 +10,7 @@ import resumer from 'resumer'
import retry from 'async-retry' import retry from 'async-retry'
import splitArray from 'split-array' import splitArray from 'split-array'
import {parse as parseIni} from 'ini' import {parse as parseIni} from 'ini'
import {readFile, stat} from 'fs-promise' import {readFile, stat, lstat} from 'fs-promise'
// Ours // Ours
import {npm as getNpmFiles, docker as getDockerFiles} from './get-files' import {npm as getNpmFiles, docker as getDockerFiles} from './get-files'
@ -40,6 +40,7 @@ export default class Now extends EventEmitter {
wantsPublic, wantsPublic,
quiet = false, quiet = false,
env = {}, env = {},
followSymlinks = true,
forceNew = false, forceNew = false,
forceSync = false, forceSync = false,
forwardNpm = false, forwardNpm = false,
@ -132,7 +133,7 @@ export default class Now extends EventEmitter {
name = this.pathInsideContent(name) name = this.pathInsideContent(name)
} }
const st = await stat(name) const st = await (followSymlinks ? stat(name) : lstat(name))
return { return {
sha, sha,

Loading…
Cancel
Save