Compare commits

..

No commits in common. "publish-branch-to-subfolder" and "master" have entirely different histories.

7 changed files with 16 additions and 121 deletions

View file

@ -1,10 +1,6 @@
language: node_js
node_js:
- "6"
cache:
directories:
- node_modules
- "4"
branches:
only:

View file

@ -27,8 +27,6 @@ program
'Remove files that match the given pattern ' +
'(ignored if used together with --add).', '.')
.option('-n, --no-push', 'Commit only (with no push)')
.option('-e, --dest <dest>', 'The destination in the target branch', '.')
.option('-c, --branchname-as-dest', 'Use a subfolder named after the current as the destination')
.parse(process.argv);
ghpages.publish(path.join(process.cwd(), program.dist), {
@ -43,8 +41,6 @@ ghpages.publish(path.join(process.cwd(), program.dist), {
only: program.remove,
remote: program.remote,
push: !program.noPush,
dest: program.dest,
branchnameAsDest: program.branchnameAsDest,
logger: function(message) {
process.stderr.write(message + '\n');
}

View file

@ -1,23 +1,3 @@
## v0.12.0
* [#146](https://github.com/tschaub/gh-pages/pull/146) - Updates dependencies ([@tschaub](https://github.com/tschaub))
* [#138](https://github.com/tschaub/gh-pages/pull/138) - Updated readme.md with svg image ([@sobolevn](https://github.com/sobolevn))
* [#142](https://github.com/tschaub/gh-pages/pull/142) - Update globby to version 6.1.0 🚀 ([@tschaub](https://github.com/tschaub))
* [#134](https://github.com/tschaub/gh-pages/pull/134) - Update eslint to version 3.8.0 🚀 ([@tschaub](https://github.com/tschaub))
* [#135](https://github.com/tschaub/gh-pages/pull/135) - Update async to version 2.1.2 🚀 ([@tschaub](https://github.com/tschaub))
* [#130](https://github.com/tschaub/gh-pages/pull/130) - Update mocha to version 3.1.1 🚀 ([@tschaub](https://github.com/tschaub))
* [#112](https://github.com/tschaub/gh-pages/pull/112) - Update graceful-fs to version 4.1.6 🚀 ([@tschaub](https://github.com/tschaub))
* [#106](https://github.com/tschaub/gh-pages/pull/106) - Add a --tag option to the cli ([@donavon](https://github.com/donavon))
* [#102](https://github.com/tschaub/gh-pages/pull/102) - Update graceful-fs to version 4.1.5 🚀 ([@tschaub](https://github.com/tschaub))
* [#89](https://github.com/tschaub/gh-pages/pull/89) - Update globby to version 5.0.0 🚀 ([@tschaub](https://github.com/tschaub))
* [#87](https://github.com/tschaub/gh-pages/pull/87) - Update eslint-config-tschaub to version 5.0.0 🚀 ([@tschaub](https://github.com/tschaub))
* [#78](https://github.com/tschaub/gh-pages/pull/78) - Use rimraf for cleaning ([@tschaub](https://github.com/tschaub))
* [#75](https://github.com/tschaub/gh-pages/pull/75) - Expose a "remove" option to the CLI ([@tschaub](https://github.com/tschaub))
* [#76](https://github.com/tschaub/gh-pages/pull/76) - Update eslint to version 2.8.0 🚀 ([@tschaub](https://github.com/tschaub))
* [#70](https://github.com/tschaub/gh-pages/pull/70) - Update eslint to version 2.7.0 🚀 ([@tschaub](https://github.com/tschaub))
* [#63](https://github.com/tschaub/gh-pages/pull/63) - Update eslint to version 2.4.0 🚀 ([@tschaub](https://github.com/tschaub))
* [#62](https://github.com/tschaub/gh-pages/pull/62) - Update eslint to version 2.3.0 🚀 ([@tschaub](https://github.com/tschaub))
## v0.11.0
* [#61](https://github.com/tschaub/gh-pages/pull/61) - Support a custom remote. ([@marco-c](https://github.com/marco-c))

View file

@ -99,7 +99,8 @@ exports.clone = function clone(repo, dir, branch, options) {
return Q.resolve();
} else {
return fs.makeTree(path.dirname(path.resolve(dir))).then(function() {
var args = ['clone', repo, dir, '--branch', branch, '--single-branch', '--origin', options.remote];
var args = ['clone', repo, dir, '--branch', branch, '--single-branch',
'--origin', options.remote];
if (options.depth) {
args.push('--depth', options.depth);
}
@ -206,7 +207,7 @@ exports.add = function add(files, cwd) {
* @return {Promise} A promise.
*/
exports.commit = function commit(message, cwd) {
return spawn(git, ['diff-index', '--quiet', 'HEAD', '--', '.'], cwd)
return spawn(git, ['diff-index', '--quiet', 'HEAD', '.'], cwd)
.then(function() {
// nothing to commit
return Q.resolve();

View file

@ -35,35 +35,6 @@ function getRemoteUrl(dir, remote) {
});
}
/**
* Return a promise resolving to the currently checked out branch name.
* @param {Object} options The options object
* @return {Promise} A promise.
*/
function getBranchName(options) {
var name;
return git(['rev-parse', '--abbrev-ref', 'HEAD'], options.repo || process.cwd())
.progress(function(chunk) {
name = String(chunk).split(/[\n\r]/).shift();
})
.then(function() {
if (name) {
return Q.resolve(name);
} else {
return Q.reject(new Error(
'Failed to get branch name from options or current directory.'));
}
})
.fail(function(err) {
return Q.reject(new Error(
'Failed to get branch name (task must either be ' +
'run in a git repository or must be configured with the "repo" ' +
'option).'));
});
}
function getRepo(options) {
if (options.repo) {
return Q.resolve(options.repo);
@ -86,8 +57,6 @@ exports.publish = function publish(basePath, config, callback) {
}
var defaults = {
dest: '.',
branchnameAsDest: false,
add: false,
git: 'git',
clone: getCacheDir(),
@ -160,8 +129,6 @@ exports.publish = function publish(basePath, config, callback) {
git.exe(options.git);
var dest = options.dest;
var repoUrl;
getRepo(options)
.then(function(repo) {
@ -169,17 +136,6 @@ exports.publish = function publish(basePath, config, callback) {
log('Cloning ' + repo + ' into ' + options.clone);
return git.clone(repo, options.clone, options.branch, options);
})
.then(function() {
if (options.branchnameAsDest) {
log('Retrieving current branch name');
return getBranchName(options.clone)
.then(function(branchname) {
dest = './' + branchname;
});
} else {
return Q.resolve();
}
})
.then(function() {
return getRemoteUrl(options.clone, options.remote)
.then(function(url) {
@ -212,17 +168,14 @@ exports.publish = function publish(basePath, config, callback) {
.then(function() {
if (!options.add) {
log('Removing files');
var outputFiles = only.map(function(file) {
return path.join(dest, file);
});
return git.rm(outputFiles.join(' '), options.clone);
return git.rm(only.join(' '), options.clone);
} else {
return Q.resolve();
}
})
.then(function() {
log('Copying files');
return copy(files, basePath, path.join(options.clone, dest));
return copy(files, basePath, options.clone);
})
.then(function() {
log('Adding all');

View file

@ -1,6 +1,6 @@
{
"name": "gh-pages",
"version": "0.12.0",
"version": "0.11.0",
"description": "Publish to a gh-pages branch on GitHub (or any other branch on any other remote)",
"keywords": [
"git",
@ -28,17 +28,17 @@
"dependencies": {
"async": "2.1.2",
"commander": "2.9.0",
"globby": "^6.1.0",
"graceful-fs": "4.1.10",
"globby": "^5.0.0",
"graceful-fs": "4.1.6",
"q": "1.4.1",
"q-io": "1.13.2",
"rimraf": "^2.5.4"
"rimraf": "^2.5.2"
},
"devDependencies": {
"chai": "^3.5.0",
"eslint": "^3.10.2",
"eslint-config-tschaub": "^6.0.0",
"mocha": "^3.1.2"
"chai": "^3.4.1",
"eslint": "3.8.0",
"eslint-config-tschaub": "5.0.0",
"mocha": "^3.1.1"
},
"bin": {
"gh-pages": "bin/gh-pages"

View file

@ -64,7 +64,7 @@ ghpages.publish(path.join(__dirname, 'build'), callback);
### Options
The default options work for simple cases. The options described below let you push to alternate branches, customize your commit messages, and more.
The default options work for simple cases cases. The options described below let you push to alternate branches, customize your commit messages, and more.
#### <a id="optionssrc">options.src</a>
@ -299,37 +299,6 @@ ghpages.publish(path.join(__dirname, 'build'), {
}, callback);
```
#### <a id="optionsdest">options.dest</a>
* type: `string`
* default: `'.'`
The destination folder within the destination branch/repository.
Example use of the `dest` option:
```js
/**
* Place content in the static/project subdirectory of the target
* branch/repository. If removing files, only remove static/project.
*/
ghpages.publish(path.join(__dirname, 'build'), {
dest: 'static/project'
}, callback);
```
#### <a id="optionsdest">options.branchnameAsDest</a>
* type: `boolean`
* default: `false`
Use the current branch name as the path to the destination folder within the destination branch/repository. This option overrides the `dest` option.
Example use of the `dest` option:
```js
ghpages.publish(path.join(__dirname, 'build'), { branchnameAsDest: true }, callback);
```
## Command Line Utility
Installing the package creates a `gh-pages` command line utility. Run `gh-pages --help` to see a list of supported options.
@ -352,4 +321,4 @@ npm run deploy
Note that this plugin requires Git 1.7.6 or higher (because it uses the `--exit-code` option for `git ls-remote`). If you'd like to see this working with earlier versions of Git, please [open an issue](https://github.com/tschaub/gh-pages/issues).
[![Current Status](https://secure.travis-ci.org/tschaub/gh-pages.svg?branch=master)](https://travis-ci.org/tschaub/gh-pages)
[![Current Status](https://secure.travis-ci.org/tschaub/gh-pages.png?branch=master)](https://travis-ci.org/tschaub/gh-pages)