From b3c44060b93ce9f58d58904ffe334fb7b62d0ac6 Mon Sep 17 00:00:00 2001 From: Joel Marcey Date: Tue, 12 Dec 2017 08:51:29 -0800 Subject: [PATCH] Use rsync instead of copy when preparing files to publish `shell.cp` does not support dotfiles :( https://github.com/shelljs/shelljs/issues/79 --- lib/publish-gh-pages.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/publish-gh-pages.js b/lib/publish-gh-pages.js index 8acde39eef..cb7b251d6e 100755 --- a/lib/publish-gh-pages.js +++ b/lib/publish-gh-pages.js @@ -110,15 +110,18 @@ shell.exec('git rm -rf .'); shell.cd('../..'); -shell.cp( - '-R', - // in github.io case, project is deployed to root. need to not recursively - // copy the deployment-branch to be. - // The !(...) represents the same thing as "everything but this" - // Copies everything in /build except the directory after the !. - path.join('build', PROJECT_PATH, `!(${PROJECT_NAME}-${DEPLOYMENT_BRANCH})`), - path.join('build', `${PROJECT_NAME}-${DEPLOYMENT_BRANCH}`) +fromPath = path.join('build', PROJECT_PATH, '/'); +toPath = path.join('build', `${PROJECT_NAME}-${DEPLOYMENT_BRANCH}`); +// In github.io case, project is deployed to root. Need to not recursively +// copy the deployment-branch to be. +excludePath = `${PROJECT_NAME}-${DEPLOYMENT_BRANCH}`; +// cannot use shell.cp because it doesn't support copying dotfiles and we +// need to copy directories like .circleci, for example +// https://github.com/shelljs/shelljs/issues/79 +shell.exec( + `rsync -rtv --exclude=${excludePath} --exclude=.DS_Store ${fromPath} ${toPath}` ); + shell.cd(path.join('build', `${PROJECT_NAME}-${DEPLOYMENT_BRANCH}`)); const currentCommit = shell.exec('git rev-parse HEAD').stdout.trim();