in make-util.js [736:775]
var linkNonAggregatedLayoutContent = function (sourceRoot, destRoot, metadataOnly) {
assert(sourceRoot, 'sourceRoot');
assert(destRoot, 'destRoot');
var metadataFileNames = [ 'TASK.JSON', 'TASK.LOC.JSON', 'STRINGS', 'ICON.PNG' ];
// process each file/folder within the source root
fs.readdirSync(sourceRoot).forEach(function (itemName) {
var taskSourcePath = path.join(sourceRoot, itemName);
var taskDestPath = path.join(destRoot, itemName);
// skip the Common folder and skip files
if (itemName == 'Common' || !fs.statSync(taskSourcePath).isDirectory()) {
return;
}
mkdir('-p', taskDestPath);
// process each file/folder within each task folder
fs.readdirSync(taskSourcePath).forEach(function (itemName) {
// skip the Tests folder
if (itemName == 'Tests') {
return;
}
// when metadataOnly=true, skip non-metadata items
if (metadataOnly && metadataFileNames.indexOf(itemName.toUpperCase()) < 0) {
return;
}
// create a junction point for directories, hardlink files
var itemSourcePath = path.join(taskSourcePath, itemName);
var itemDestPath = path.join(taskDestPath, itemName);
if (fs.statSync(itemSourcePath).isDirectory()) {
fs.symlinkSync(itemSourcePath, itemDestPath, 'junction');
}
else {
fs.linkSync(itemSourcePath, itemDestPath);
}
});
});
}