1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2024-11-05 01:56:21 +00:00

feat: improve ad hoc theme loading

This commit is contained in:
hacksalot 2018-02-01 07:20:12 -05:00
parent 1dbb78c53f
commit 688767d415
No known key found for this signature in database
GPG Key ID: 2F343EC247CA4B06
2 changed files with 37 additions and 21 deletions

15
dist/verbs/build.js vendored
View File

@ -423,19 +423,22 @@ Implementation of the 'build' verb for HackMyResume.
*/ */
_verifyTheme = function(themeNameOrPath) { _verifyTheme = function(themeNameOrPath) {
var exists, tFolder; var exists, tFolder, themesObj;
themesObj = require('fresh-themes');
if (_.has(themesObj.themes, themeNameOrPath)) {
tFolder = PATH.join(parsePath(require.resolve('fresh-themes')).dirname, '/themes/', themeNameOrPath); tFolder = PATH.join(parsePath(require.resolve('fresh-themes')).dirname, '/themes/', themeNameOrPath);
exists = require('path-exists').sync; } else {
if (!exists(tFolder)) {
tFolder = PATH.resolve(themeNameOrPath); tFolder = PATH.resolve(themeNameOrPath);
if (!exists(tFolder)) { }
exists = require('path-exists').sync;
if (exists(tFolder)) {
return tFolder;
} else {
return { return {
fluenterror: HMSTATUS.themeNotFound, fluenterror: HMSTATUS.themeNotFound,
data: _opts.theme data: _opts.theme
}; };
} }
}
return tFolder;
}; };

View File

@ -334,17 +334,30 @@ _expand = ( dst, theTheme ) ->
Verify the specified theme name/path. Verify the specified theme name/path.
### ###
_verifyTheme = ( themeNameOrPath ) -> _verifyTheme = ( themeNameOrPath ) ->
# First, see if this is one of the predefined FRESH themes. There are only a
# handful of these, but they may change over time, so we need to query
# the official source of truth: the fresh-themes repository, which mounts the
# themes conveniently by name to the module object, and which is embedded
# locally inside the HackMyResume installation.
themesObj = require 'fresh-themes'
if _.has themesObj.themes, themeNameOrPath
tFolder = PATH.join( tFolder = PATH.join(
parsePath( require.resolve('fresh-themes') ).dirname, parsePath( require.resolve('fresh-themes') ).dirname,
'/themes/', '/themes/',
themeNameOrPath themeNameOrPath
) )
exists = require('path-exists').sync else
if !exists( tFolder ) # Otherwsie it's a path to an arbitrary FRESH or JRS theme sitting somewhere
# on the user's system (or, in the future, at a URI).
tFolder = PATH.resolve themeNameOrPath tFolder = PATH.resolve themeNameOrPath
if !exists tFolder
return fluenterror: HMSTATUS.themeNotFound, data: _opts.theme # In either case, make sure the theme folder exists
exists = require('path-exists').sync
if exists tFolder
tFolder tFolder
else
fluenterror: HMSTATUS.themeNotFound, data: _opts.theme