mirror of
https://github.com/jakejarvis/hugo-extended.git
synced 2025-04-26 09:05:20 -04:00
Support Hugo extended (#65)
* wip: Support Hugo extended * fallback support, update readme.md * fixup! wip: Support Hugo extended
This commit is contained in:
parent
5214d55122
commit
1113135bfe
42
README.md
42
README.md
@ -8,6 +8,8 @@
|
|||||||
npm install --save-dev hugo-bin
|
npm install --save-dev hugo-bin
|
||||||
```
|
```
|
||||||
|
|
||||||
|
hugo-bin now supports [Extended version of Hugo](https://github.com/gohugoio/hugo/releases/tag/v0.43). See [Installation options](#installation-options) for more details.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
### API
|
### API
|
||||||
@ -42,6 +44,46 @@ npm run create -- 'post/my-new-post' # see below 'npm-run-script'
|
|||||||
|
|
||||||
See the [Hugo Documentation](https://gohugo.io/) for more information.
|
See the [Hugo Documentation](https://gohugo.io/) for more information.
|
||||||
|
|
||||||
|
## Installation options
|
||||||
|
|
||||||
|
hugo-bin supports options to change the variation of Hugo binaries.
|
||||||
|
|
||||||
|
Each option can be configured in the `hugo-bin` section of your `package.json`:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "your-package",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"hugo-bin": {
|
||||||
|
"buildTags": "extended"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Also as local or global [.npmrc](https://docs.npmjs.com/files/npmrc) configuration file:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
hugo_bin_build_tags = "extended"
|
||||||
|
```
|
||||||
|
|
||||||
|
Also as environment variable:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
export HUGO_BIN_BUILD_TAGS="extended"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note that you have to run `npm install hugo-bin` to re-install hugo-bin itself, if you change any one of these options.**
|
||||||
|
|
||||||
|
### Options
|
||||||
|
|
||||||
|
#### buildTags
|
||||||
|
|
||||||
|
Default: `""`
|
||||||
|
|
||||||
|
Set it to `extended` to download the [extended version](https://github.com/gohugoio/hugo/releases/tag/v0.43) binary.
|
||||||
|
|
||||||
|
If this is set to `extended` but it's not available for the user's platform, then the normal version will be downloaded instead.
|
||||||
|
|
||||||
## Supported versions
|
## Supported versions
|
||||||
|
|
||||||
See [the package.json commit history](https://github.com/fenneclab/hugo-bin/commits/master/package.json).
|
See [the package.json commit history](https://github.com/fenneclab/hugo-bin/commits/master/package.json).
|
||||||
|
2
index.js
2
index.js
@ -1 +1 @@
|
|||||||
module.exports = require('./lib').path();
|
module.exports = require('./lib')(process.cwd()).path();
|
||||||
|
26
lib/index.js
26
lib/index.js
@ -1,5 +1,6 @@
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
const BinWrapper = require('bin-wrapper');
|
const BinWrapper = require('bin-wrapper');
|
||||||
|
const pkgConf = require('pkg-conf');
|
||||||
const pkg = require('../package');
|
const pkg = require('../package');
|
||||||
|
|
||||||
const hugoVersion = pkg.hugoVersion;
|
const hugoVersion = pkg.hugoVersion;
|
||||||
@ -29,9 +30,23 @@ const binNameMap = {
|
|||||||
x64: 'hugo.exe'
|
x64: 'hugo.exe'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const dest = path.join(__dirname, '../vendor');
|
||||||
const binName = (binNameMap[process.platform] && binNameMap[process.platform][process.arch]) || '';
|
const binName = (binNameMap[process.platform] && binNameMap[process.platform][process.arch]) || '';
|
||||||
|
const extendedBin = new BinWrapper()
|
||||||
module.exports = new BinWrapper()
|
.src(`${baseUrl}hugo_extended_${hugoVersion}_Linux-64bit.tar.gz`, 'linux', 'x64')
|
||||||
|
.src(`${baseUrl}hugo_extended_${hugoVersion}_macOS-64bit.tar.gz`, 'darwin', 'x64')
|
||||||
|
.src(`${baseUrl}hugo_extended_${hugoVersion}_Windows-64bit.zip`, 'win32', 'x64')
|
||||||
|
// Falling back to normal version on non supported platforms
|
||||||
|
.src(`${baseUrl}hugo_${hugoVersion}_FreeBSD-32bit.tar.gz`, 'freebsd', 'x86')
|
||||||
|
.src(`${baseUrl}hugo_${hugoVersion}_FreeBSD-64bit.tar.gz`, 'freebsd', 'x64')
|
||||||
|
.src(`${baseUrl}hugo_${hugoVersion}_FreeBSD-ARM.tar.gz`, 'freebsd', 'arm')
|
||||||
|
.src(`${baseUrl}hugo_${hugoVersion}_Linux-32bit.tar.gz`, 'linux', 'x86')
|
||||||
|
.src(`${baseUrl}hugo_${hugoVersion}_Linux-ARM.tar.gz`, 'linux', 'arm')
|
||||||
|
.src(`${baseUrl}hugo_${hugoVersion}_macOS-32bit.tar.gz`, 'darwin', 'x86')
|
||||||
|
.src(`${baseUrl}hugo_${hugoVersion}_Windows-32bit.zip`, 'win32', 'x86')
|
||||||
|
.dest(dest)
|
||||||
|
.use(binName);
|
||||||
|
const normalBin = new BinWrapper()
|
||||||
.src(`${baseUrl}hugo_${hugoVersion}_FreeBSD-32bit.tar.gz`, 'freebsd', 'x86')
|
.src(`${baseUrl}hugo_${hugoVersion}_FreeBSD-32bit.tar.gz`, 'freebsd', 'x86')
|
||||||
.src(`${baseUrl}hugo_${hugoVersion}_FreeBSD-64bit.tar.gz`, 'freebsd', 'x64')
|
.src(`${baseUrl}hugo_${hugoVersion}_FreeBSD-64bit.tar.gz`, 'freebsd', 'x64')
|
||||||
.src(`${baseUrl}hugo_${hugoVersion}_FreeBSD-ARM.tar.gz`, 'freebsd', 'arm')
|
.src(`${baseUrl}hugo_${hugoVersion}_FreeBSD-ARM.tar.gz`, 'freebsd', 'arm')
|
||||||
@ -42,5 +57,10 @@ module.exports = new BinWrapper()
|
|||||||
.src(`${baseUrl}hugo_${hugoVersion}_macOS-64bit.tar.gz`, 'darwin', 'x64')
|
.src(`${baseUrl}hugo_${hugoVersion}_macOS-64bit.tar.gz`, 'darwin', 'x64')
|
||||||
.src(`${baseUrl}hugo_${hugoVersion}_Windows-32bit.zip`, 'win32', 'x86')
|
.src(`${baseUrl}hugo_${hugoVersion}_Windows-32bit.zip`, 'win32', 'x86')
|
||||||
.src(`${baseUrl}hugo_${hugoVersion}_Windows-64bit.zip`, 'win32', 'x64')
|
.src(`${baseUrl}hugo_${hugoVersion}_Windows-64bit.zip`, 'win32', 'x64')
|
||||||
.dest(path.join(__dirname, '../vendor'))
|
.dest(dest)
|
||||||
.use(binName);
|
.use(binName);
|
||||||
|
module.exports = projectRoot => {
|
||||||
|
const config = pkgConf.sync('hugo-bin', { cwd: projectRoot });
|
||||||
|
const extended = (process.env.HUGO_BIN_BUILD_TAGS || process.env.npm_config_hugo_bin_build_tags || config.buildTags || '') === 'extended';
|
||||||
|
return extended ? extendedBin : normalBin;
|
||||||
|
};
|
||||||
|
@ -1,7 +1,26 @@
|
|||||||
|
const path = require('path');
|
||||||
const bin = require('./');
|
const bin = require('./');
|
||||||
const log = require('logalot');
|
const log = require('logalot');
|
||||||
|
|
||||||
bin.run(['version'])
|
function getProjectRoot() {
|
||||||
|
// projectRoot on postinstall could be INIT_CWD introduced in npm>=5.4
|
||||||
|
// see: https://github.com/npm/npm/issues/16990
|
||||||
|
const initCwd = process.env.INIT_CWD;
|
||||||
|
if (initCwd) {
|
||||||
|
return initCwd;
|
||||||
|
}
|
||||||
|
// Fallback of getting INIT_CWD
|
||||||
|
const cwd = process.cwd();
|
||||||
|
const paths = cwd.split(path.sep);
|
||||||
|
// If process.cwd end with 'node_modules/*' then get the dependent root directory,
|
||||||
|
// otherwise returns cwd (ordinary it will be the postinstall process of hugo-bin itself).
|
||||||
|
if (paths.length > 1 && paths[paths.length - 2] === 'node_modules') {
|
||||||
|
return path.resolve('../../', cwd);
|
||||||
|
}
|
||||||
|
return cwd;
|
||||||
|
}
|
||||||
|
|
||||||
|
bin(getProjectRoot()).run(['version'])
|
||||||
.then(() => {
|
.then(() => {
|
||||||
log.success('Hugo binary is installed successfully');
|
log.success('Hugo binary is installed successfully');
|
||||||
})
|
})
|
||||||
|
86
package-lock.json
generated
86
package-lock.json
generated
@ -1626,6 +1626,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
|
||||||
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
|
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
|
||||||
},
|
},
|
||||||
|
"json-parse-better-errors": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
|
||||||
|
},
|
||||||
"json-schema-traverse": {
|
"json-schema-traverse": {
|
||||||
"version": "0.4.1",
|
"version": "0.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||||
@ -1683,6 +1688,22 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"locate-path": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
|
||||||
|
"requires": {
|
||||||
|
"p-locate": "2.0.0",
|
||||||
|
"path-exists": "3.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"path-exists": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||||
|
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"lodash": {
|
"lodash": {
|
||||||
"version": "4.17.10",
|
"version": "4.17.10",
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
|
||||||
@ -1996,6 +2017,22 @@
|
|||||||
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
|
||||||
"integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4="
|
"integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4="
|
||||||
},
|
},
|
||||||
|
"p-limit": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
|
||||||
|
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
|
||||||
|
"requires": {
|
||||||
|
"p-try": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"p-locate": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
|
||||||
|
"requires": {
|
||||||
|
"p-limit": "1.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"p-map": {
|
"p-map": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
|
||||||
@ -2009,6 +2046,11 @@
|
|||||||
"p-finally": "1.0.0"
|
"p-finally": "1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"p-try": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
|
||||||
|
},
|
||||||
"package-json": {
|
"package-json": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
|
||||||
@ -2124,6 +2166,50 @@
|
|||||||
"pinkie": "2.0.4"
|
"pinkie": "2.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"pkg-conf": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz",
|
||||||
|
"integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=",
|
||||||
|
"requires": {
|
||||||
|
"find-up": "2.1.0",
|
||||||
|
"load-json-file": "4.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"find-up": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
|
||||||
|
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
|
||||||
|
"requires": {
|
||||||
|
"locate-path": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"load-json-file": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
|
||||||
|
"integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
|
||||||
|
"requires": {
|
||||||
|
"graceful-fs": "4.1.11",
|
||||||
|
"parse-json": "4.0.0",
|
||||||
|
"pify": "3.0.0",
|
||||||
|
"strip-bom": "3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parse-json": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
|
||||||
|
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
|
||||||
|
"requires": {
|
||||||
|
"error-ex": "1.3.2",
|
||||||
|
"json-parse-better-errors": "1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"strip-bom": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
||||||
|
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"pluralize": {
|
"pluralize": {
|
||||||
"version": "7.0.0",
|
"version": "7.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "hugo-bin",
|
"name": "hugo-bin",
|
||||||
"version": "0.30.0",
|
"version": "0.30.0",
|
||||||
"hugoVersion": "0.42.2",
|
"hugoVersion": "0.43",
|
||||||
"description": "Binary wrapper for Hugo",
|
"description": "Binary wrapper for Hugo",
|
||||||
"repository": "fenneclab/hugo-bin",
|
"repository": "fenneclab/hugo-bin",
|
||||||
"author": "satoshun00 <shun.sato@fenneclab.com>",
|
"author": "satoshun00 <shun.sato@fenneclab.com>",
|
||||||
@ -13,7 +13,8 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bin-wrapper": "4.0.0",
|
"bin-wrapper": "4.0.0",
|
||||||
"del-cli": "1.1.0",
|
"del-cli": "1.1.0",
|
||||||
"logalot": "2.1.0"
|
"logalot": "2.1.0",
|
||||||
|
"pkg-conf": "2.1.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"bin-check": "4.1.0",
|
"bin-check": "4.1.0",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user