Skip to content

Commit 5ccc941

Browse files
committed
post install wip - detecting starterkits
1 parent 3298889 commit 5ccc941

File tree

3 files changed

+43
-9
lines changed

3 files changed

+43
-9
lines changed

core/lib/patternlab.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ var diveSync = require('diveSync'),
2121
function buildPatternData(dataFilesPath, fs) {
2222
var dataFilesPath = dataFilesPath;
2323
var dataFiles = glob.sync(dataFilesPath + '*.json', {"ignore" : [dataFilesPath + 'listitems.json']});
24-
var mergeObject = {}
24+
var mergeObject = {};
2525
dataFiles.forEach(function (filePath) {
26-
var jsonData = fs.readJSONSync(path.resolve(filePath), 'utf8')
27-
mergeObject = _.merge(mergeObject, jsonData)
28-
})
26+
var jsonData = fs.readJSONSync(path.resolve(filePath), 'utf8');
27+
mergeObject = _.merge(mergeObject, jsonData);
28+
});
2929
return mergeObject;
3030
}
3131

@@ -99,7 +99,6 @@ var patternlab_engine = function (config) {
9999
console.log(patternlab.package.version);
100100
}
101101

102-
103102
function help() {
104103

105104
console.log('');
@@ -185,7 +184,7 @@ var patternlab_engine = function (config) {
185184
}
186185

187186
function listStarterkits() {
188-
var starterkit_manager = new sm(patternlab);
187+
var starterkit_manager = new sm(patternlab.config);
189188
return starterkit_manager.list_starterkits();
190189
}
191190

core/lib/starterkit_manager.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
"use strict";
22

3-
var starterkit_manager = function (pl) {
3+
var starterkit_manager = function (config) {
44
var path = require('path'),
55
fs = require('fs-extra'),
66
util = require('./utilities'),
7-
paths = pl.config.paths;
7+
paths = config.paths;
88

99
function loadStarterKit(starterkitName, clean) {
1010
try {
1111
var kitPath = path.resolve(
12-
path.join(process.cwd(), 'node_modules', starterkitName, pl.config.starterkitSubDir)
12+
path.join(process.cwd(), 'node_modules', starterkitName, config.starterkitSubDir)
1313
);
1414
console.log('Attempting to load starterkit from', kitPath);
1515
try {
@@ -49,6 +49,15 @@ var starterkit_manager = function (pl) {
4949

5050
}
5151

52+
function detectStarterKits() {
53+
var node_modules_path = path.join(process.cwd(), 'node_modules');
54+
var npm_modules = fs.readdirSync(node_modules_path).filter(function (dir) {
55+
var module_path = path.join(process.cwd(), 'node_modules', dir);
56+
return fs.statSync(module_path).isDirectory() && dir.indexOf('starterkit-') === 0;
57+
});
58+
return npm_modules;
59+
}
60+
5261
return {
5362
load_starterkit: function (starterkitName, clean) {
5463
loadStarterKit(starterkitName, clean);
@@ -58,6 +67,9 @@ var starterkit_manager = function (pl) {
5867
},
5968
pack_starterkit: function () {
6069
packStarterkit();
70+
},
71+
detect_starterkits: function () {
72+
return detectStarterKits();
6173
}
6274
};
6375

core/scripts/postinstall.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"use strict";
2+
try{
3+
4+
var sm = require('../lib/starterkit_manager.js');
5+
var path = require('path');
6+
var fs = require('fs-extra');
7+
8+
//get the config
9+
var configPath = path.resolve(process.cwd(), 'patternlab-config.json');
10+
var config = fs.readJSONSync(path.resolve(configPath), 'utf8');
11+
12+
//determine if any starterkits are already installed
13+
var starterkit_manager = new sm(config);
14+
var foundStarterkits = starterkit_manager.detect_starterkits();
15+
16+
console.log(foundStarterkits);
17+
18+
} catch (ex) {
19+
console.log(ex);
20+
console.log('An error occurred during Pattern Lab Node postinstall.');
21+
}
22+
23+

0 commit comments

Comments
 (0)