Browse Source

Ye old annoying admin task rewrite

pull/7101/head
jlukic 2 years ago
parent
commit
5bd99a34a9
14 changed files with 491 additions and 422 deletions
  1. 26
      dist/components/button.css
  2. 2
      dist/components/button.min.css
  3. 2
      dist/components/dimmer.js
  4. 2
      dist/components/dimmer.min.js
  5. 2
      dist/components/icon.css
  6. 2
      dist/components/icon.min.css
  7. 35
      dist/semantic.css
  8. 2
      dist/semantic.js
  9. 4
      dist/semantic.min.css
  10. 2
      dist/semantic.min.js
  11. 522
      tasks/admin/components/create.js
  12. 4
      tasks/admin/components/init.js
  13. 306
      tasks/admin/distributions/create.js
  14. 2
      tasks/admin/release.js

26
dist/components/button.css

@ -856,6 +856,32 @@
text-align: center;
transform: translateY(-50%);
}
/* Loading */
.ui.labeled.icon.button > .icon.loading {
-webkit-animation: none;
animation: none;
}
.ui.labeled.icon.button > .icon.loading:before {
-webkit-animation: labeled-button-icon-loading 2s linear infinite;
animation: labeled-button-icon-loading 2s linear infinite;
}
@-webkit-keyframes labeled-button-icon-loading {
from {
transform: translateY(-50%) rotate(0deg);
}
to {
transform: translateY(-50%) rotate(360deg);
}
}
@keyframes labeled-button-icon-loading {
from {
transform: translateY(-50%) rotate(0deg);
}
to {
transform: translateY(-50%) rotate(360deg);
}
}
.ui.labeled.icon.buttons .button > .icon {
border-radius: 0em;
}

2
dist/components/button.min.css
File diff suppressed because it is too large
View File

2
dist/components/dimmer.js

@ -151,7 +151,7 @@ $.fn.dimmer = function(parameters) {
event: {
click: function(event) {
module.verbose('Determining if event occured on dimmer', event);
module.verbose('Determining if event occurred on dimmer', event);
if( $dimmer.find(event.target).length === 0 || $(event.target).is(selector.content) ) {
module.hide();
event.stopImmediatePropagation();

2
dist/components/dimmer.min.js
File diff suppressed because it is too large
View File

2
dist/components/icon.css

@ -58,6 +58,8 @@ i.icon:before {
i.icon.loading {
height: 1em;
line-height: 1;
}
i.icon.loading {
-webkit-animation: icon-loading 2s linear infinite;
animation: icon-loading 2s linear infinite;
}

2
dist/components/icon.min.css
File diff suppressed because it is too large
View File

35
dist/semantic.css

@ -1719,6 +1719,38 @@ body .ui.inverted::-webkit-scrollbar-thumb:hover {
transform: translateY(-50%);
}
/* Loading */
.ui.labeled.icon.button > .icon.loading {
-webkit-animation: none;
animation: none;
}
.ui.labeled.icon.button > .icon.loading:before {
-webkit-animation: labeled-button-icon-loading 2s linear infinite;
animation: labeled-button-icon-loading 2s linear infinite;
}
@-webkit-keyframes labeled-button-icon-loading {
from {
transform: translateY(-50%) rotate(0deg);
}
to {
transform: translateY(-50%) rotate(360deg);
}
}
@keyframes labeled-button-icon-loading {
from {
transform: translateY(-50%) rotate(0deg);
}
to {
transform: translateY(-50%) rotate(360deg);
}
}
.ui.labeled.icon.buttons .button > .icon {
border-radius: 0em;
}
@ -7399,6 +7431,9 @@ i.icon:before {
i.icon.loading {
height: 1em;
line-height: 1;
}
i.icon.loading {
-webkit-animation: icon-loading 2s linear infinite;
animation: icon-loading 2s linear infinite;
}

2
dist/semantic.js

@ -3802,7 +3802,7 @@ $.fn.dimmer = function(parameters) {
event: {
click: function(event) {
module.verbose('Determining if event occured on dimmer', event);
module.verbose('Determining if event occurred on dimmer', event);
if( $dimmer.find(event.target).length === 0 || $(event.target).is(selector.content) ) {
module.hide();
event.stopImmediatePropagation();

4
dist/semantic.min.css
File diff suppressed because it is too large
View File

2
dist/semantic.min.js
File diff suppressed because it is too large
View File

522
tasks/admin/components/create.js

@ -14,8 +14,9 @@
* create meteor.js file
*/
var
gulp = require('gulp'),
let
gulp = require('gulp'),
{series, parallel} = gulp,
// node dependencies
console = require('better-console'),
@ -46,285 +47,284 @@ var
;
module.exports = function(callback) {
var
stream,
index,
tasks = []
;
let
stream,
index,
tasks = []
;
for(index in release.components) {
for(index in release.components) {
var
component = release.components[index]
;
let
component = release.components[index]
;
// streams... designed to save time and make coding fun...
(function(component) {
// streams... designed to save time and make coding fun...
(function(component) {
var
outputDirectory = path.join(release.outputRoot, component),
isJavascript = fs.existsSync(output.compressed + component + '.js'),
isCSS = fs.existsSync(output.compressed + component + '.css'),
capitalizedComponent = component.charAt(0).toUpperCase() + component.slice(1),
packageName = release.packageRoot + component,
repoName = release.componentRepoRoot + capitalizedComponent,
gitURL = 'https://github.com/' + release.org + '/' + repoName + '.git',
repoURL = 'https://github.com/' + release.org + '/' + repoName + '/',
concatSettings = {
newline : '',
root : outputDirectory,
prepend : " '",
append : "',"
let
outputDirectory = path.join(release.outputRoot, component),
isJavascript = fs.existsSync(output.compressed + component + '.js'),
isCSS = fs.existsSync(output.compressed + component + '.css'),
capitalizedComponent = component.charAt(0).toUpperCase() + component.slice(1),
packageName = release.packageRoot + component,
repoName = release.componentRepoRoot + capitalizedComponent,
gitURL = 'https://github.com/' + release.org + '/' + repoName + '.git',
repoURL = 'https://github.com/' + release.org + '/' + repoName + '/',
concatSettings = {
newline : '',
root : outputDirectory,
prepend : " '",
append : "',"
},
regExp = {
match : {
// templated values
name : '{component}',
titleName : '{Component}',
version : '{version}',
files : '{files}',
// release notes
spacedVersions : /(###.*\n)\n+(?=###)/gm,
spacedLists : /(^- .*\n)\n+(?=^-)/gm,
trim : /^\s+|\s+$/g,
unrelatedNotes : new RegExp('^((?!(^.*(' + component + ').*$|###.*)).)*$', 'gmi'),
whitespace : /\n\s*\n\s*\n/gm,
// npm
componentExport : /(.*)\$\.fn\.\w+\s*=\s*function\(([^\)]*)\)\s*{/g,
componentReference: '$.fn.' + component,
settingsExport : /\$\.fn\.\w+\.settings\s*=/g,
settingsReference : /\$\.fn\.\w+\.settings/g,
trailingComma : /,(?=[^,]*$)/,
jQuery : /jQuery/g,
},
regExp = {
match : {
// templated values
name : '{component}',
titleName : '{Component}',
version : '{version}',
files : '{files}',
// release notes
spacedVersions : /(###.*\n)\n+(?=###)/gm,
spacedLists : /(^- .*\n)\n+(?=^-)/gm,
trim : /^\s+|\s+$/g,
unrelatedNotes : new RegExp('^((?!(^.*(' + component + ').*$|###.*)).)*$', 'gmi'),
whitespace : /\n\s*\n\s*\n/gm,
// npm
componentExport : /(.*)\$\.fn\.\w+\s*=\s*function\(([^\)]*)\)\s*{/g,
componentReference: '$.fn.' + component,
settingsExport : /\$\.fn\.\w+\.settings\s*=/g,
settingsReference : /\$\.fn\.\w+\.settings/g,
trailingComma : /,(?=[^,]*$)/,
jQuery : /jQuery/g,
},
replace : {
// readme
name : component,
titleName : capitalizedComponent,
// release notes
spacedVersions : '',
spacedLists : '$1',
trim : '',
unrelatedNotes : '',
whitespace : '\n\n',
// npm
componentExport : 'var _module = module;\n$1module.exports = function($2) {',
componentReference: '_module.exports',
settingsExport : 'module.exports.settings =',
settingsReference : '_module.exports.settings',
jQuery : 'require("jquery")'
}
},
task = {
all : component + ' creating',
repo : component + ' create repo',
bower : component + ' create bower.json',
readme : component + ' create README',
npm : component + ' create NPM Module',
notes : component + ' create release notes',
composer : component + ' create composer.json',
package : component + ' create package.json',
meteor : component + ' create meteor package.js',
},
// paths to includable assets
manifest = {
assets : outputDirectory + '/assets/**/' + component + '?(s).*',
component : outputDirectory + '/' + component + '+(.js|.css)'
replace : {
// readme
name : component,
titleName : capitalizedComponent,
// release notes
spacedVersions : '',
spacedLists : '$1',
trim : '',
unrelatedNotes : '',
whitespace : '\n\n',
// npm
componentExport : 'var _module = module;\n$1module.exports = function($2) {',
componentReference: '_module.exports',
settingsExport : 'module.exports.settings =',
settingsReference : '_module.exports.settings',
jQuery : 'require("jquery")'
}
;
},
task = {
all : component + ' creating',
repo : component + ' create repo',
bower : component + ' create bower.json',
readme : component + ' create README',
npm : component + ' create NPM Module',
notes : component + ' create release notes',
composer : component + ' create composer.json',
package : component + ' create package.json',
meteor : component + ' create meteor package.js',
},
// paths to includable assets
manifest = {
assets : outputDirectory + '/assets/**/' + component + '?(s).*',
component : outputDirectory + '/' + component + '+(.js|.css)'
}
;
// copy dist files into output folder adjusting asset paths
gulp.task(task.repo, false, function() {
return gulp.src(release.source + component + '.*')
.pipe(plumber())
.pipe(flatten())
.pipe(replace(release.paths.source, release.paths.output))
.pipe(gulp.dest(outputDirectory))
;
});
// copy dist files into output folder adjusting asset paths
let repoTask = function() {
console.info(component);
console.info('---------------------');
console.info('Copying dist files to component');
return gulp.src(release.source + component + '.*')
.pipe(plumber())
.pipe(flatten())
.pipe(replace(release.paths.source, release.paths.output))
.pipe(gulp.dest(outputDirectory))
;
};
// create npm module
gulp.task(task.npm, false, function() {
return gulp.src(release.source + component + '!(*.min|*.map).js')
.pipe(plumber())
.pipe(flatten())
.pipe(replace(regExp.match.componentExport, regExp.replace.componentExport))
.pipe(replace(regExp.match.componentReference, regExp.replace.componentReference))
.pipe(replace(regExp.match.settingsExport, regExp.replace.settingsExport))
.pipe(replace(regExp.match.settingsReference, regExp.replace.settingsReference))
.pipe(replace(regExp.match.jQuery, regExp.replace.jQuery))
.pipe(rename('index.js'))
.pipe(gulp.dest(outputDirectory))
;
});
// create npm module
let npmTask = function() {
console.info('Creating index.js for npm');
return gulp.src(release.source + component + '!(*.min|*.map).js')
.pipe(plumber())
.pipe(flatten())
.pipe(replace(regExp.match.componentExport, regExp.replace.componentExport))
.pipe(replace(regExp.match.componentReference, regExp.replace.componentReference))
.pipe(replace(regExp.match.settingsExport, regExp.replace.settingsExport))
.pipe(replace(regExp.match.settingsReference, regExp.replace.settingsReference))
.pipe(replace(regExp.match.jQuery, regExp.replace.jQuery))
.pipe(rename('index.js'))
.pipe(gulp.dest(outputDirectory))
;
};
// create readme
gulp.task(task.readme, false, function() {
return gulp.src(release.templates.readme)
.pipe(plumber())
.pipe(flatten())
.pipe(replace(regExp.match.name, regExp.replace.name))
.pipe(replace(regExp.match.titleName, regExp.replace.titleName))
.pipe(gulp.dest(outputDirectory))
;
});
// create readme
let readmeTask = function() {
console.info('Creating readme');
return gulp.src(release.templates.readme)
.pipe(plumber())
.pipe(flatten())
.pipe(replace(regExp.match.name, regExp.replace.name))
.pipe(replace(regExp.match.titleName, regExp.replace.titleName))
.pipe(gulp.dest(outputDirectory))
;
};
// extend bower.json
gulp.task(task.bower, false, function() {
return gulp.src(release.templates.bower)
.pipe(plumber())
.pipe(flatten())
.pipe(jsonEditor(function(bower) {
bower.name = packageName;
bower.description = capitalizedComponent + ' - Semantic UI';
if(isJavascript) {
if(isCSS) {
bower.main = [
component + '.js',
component + '.css'
];
}
else {
bower.main = [
component + '.js'
];
}
bower.dependencies = {
jquery: '>=1.8'
};
}
else {
// extend bower.json
let bowerTask = function() {
console.info('Extending bower.json');
return gulp.src(release.templates.bower)
.pipe(plumber())
.pipe(flatten())
.pipe(jsonEditor(function(bower) {
bower.name = packageName;
bower.description = capitalizedComponent + ' - Semantic UI';
if(isJavascript) {
if(isCSS) {
bower.main = [
component + '.js',
component + '.css'
];
}
return bower;
}))
.pipe(gulp.dest(outputDirectory))
;
});
// extend package.json
gulp.task(task.package, false, function() {
return gulp.src(release.templates.package)
.pipe(plumber())
.pipe(flatten())
.pipe(jsonEditor(function(npm) {
if(isJavascript) {
npm.dependencies = {
jquery: 'x.x.x'
};
npm.main = 'index.js';
}
npm.name = packageName;
if(version) {
npm.version = version;
else {
bower.main = [
component + '.js'
];
}
npm.title = 'Semantic UI - ' + capitalizedComponent;
npm.description = 'Single component release of ' + component;
npm.repository = {
type : 'git',
url : gitURL
bower.dependencies = {
jquery: '>=1.8'
};
return npm;
}))
.pipe(gulp.dest(outputDirectory))
;
});
// extend composer.json
gulp.task(task.composer, false, function() {
return gulp.src(release.templates.composer)
.pipe(plumber())
.pipe(flatten())
.pipe(jsonEditor(function(composer) {
if(isJavascript) {
composer.dependencies = {
jquery: 'x.x.x'
};
composer.main = component + '.js';
}
composer.name = 'semantic/' + component;
if(version) {
composer.version = version;
}
composer.description = 'Single component release of ' + component;
return composer;
}))
.pipe(gulp.dest(outputDirectory))
;
});
}
else {
bower.main = [
component + '.css'
];
}
return bower;
}))
.pipe(gulp.dest(outputDirectory))
;
};
// create release notes
gulp.task(task.notes, false, function() {
return gulp.src(release.templates.notes)
.pipe(plumber())
.pipe(flatten())
// Remove release notes for lines not mentioning component
.pipe(replace(regExp.match.unrelatedNotes, regExp.replace.unrelatedNotes))
.pipe(replace(regExp.match.whitespace, regExp.replace.whitespace))
.pipe(replace(regExp.match.spacedVersions, regExp.replace.spacedVersions))
.pipe(replace(regExp.match.spacedLists, regExp.replace.spacedLists))
.pipe(replace(regExp.match.trim, regExp.replace.trim))
.pipe(gulp.dest(outputDirectory))
;
});
// extend package.json
let packageTask = function() {
console.info('Extending package.json');
return gulp.src(release.templates.package)
.pipe(plumber())
.pipe(flatten())
.pipe(jsonEditor(function(npm) {
if(isJavascript) {
npm.dependencies = {
jquery: 'x.x.x'
};
npm.main = 'index.js';
}
npm.name = packageName;
if(version) {
npm.version = version;
}
npm.title = 'Semantic UI - ' + capitalizedComponent;
npm.description = 'Single component release of ' + component;
npm.repository = {
type : 'git',
url : gitURL
};
return npm;
}))
.pipe(gulp.dest(outputDirectory))
;
};
// Creates meteor package.js
gulp.task(task.meteor, function() {
var
filenames = ''
;
return gulp.src(manifest.component)
.pipe(concatFileNames('empty.txt', concatSettings))
.pipe(tap(function(file) {
filenames += file.contents;
}))
.on('end', function() {
gulp.src(manifest.assets)
.pipe(concatFileNames('empty.txt', concatSettings))
.pipe(tap(function(file) {
filenames += file.contents;
}))
.on('end', function() {
// remove trailing slash
filenames = filenames.replace(regExp.match.trailingComma, '').trim();
gulp.src(release.templates.meteor.component)
.pipe(plumber())
.pipe(flatten())
.pipe(replace(regExp.match.name, regExp.replace.name))
.pipe(replace(regExp.match.titleName, regExp.replace.titleName))
.pipe(replace(regExp.match.version, version))
.pipe(replace(regExp.match.files, filenames))
.pipe(rename(release.files.meteor))
.pipe(gulp.dest(outputDirectory))
;
})
;
})
;
});
// extend composer.json
let composeTask = function() {
console.info('Extending composer.json');
return gulp.src(release.templates.composer)
.pipe(plumber())
.pipe(flatten())
.pipe(jsonEditor(function(composer) {
if(isJavascript) {
composer.dependencies = {
jquery: 'x.x.x'
};
composer.main = component + '.js';
}
composer.name = 'semantic/' + component;
if(version) {
composer.version = version;
}
composer.description = 'Single component release of ' + component;
return composer;
}))
.pipe(gulp.dest(outputDirectory))
;
};
// create release notes
let releateNotesTask = function() {
return gulp.src(release.templates.notes)
.pipe(plumber())
.pipe(flatten())
// Remove release notes for lines not mentioning component
.pipe(replace(regExp.match.unrelatedNotes, regExp.replace.unrelatedNotes))
.pipe(replace(regExp.match.whitespace, regExp.replace.whitespace))
.pipe(replace(regExp.match.spacedVersions, regExp.replace.spacedVersions))
.pipe(replace(regExp.match.spacedLists, regExp.replace.spacedLists))
.pipe(replace(regExp.match.trim, regExp.replace.trim))
.pipe(gulp.dest(outputDirectory))
;
};
// synchronous tasks in orchestrator? I think not
gulp.task(task.all, false, function(callback) {
gulp.series([
task.repo,
task.npm,
task.bower,
task.readme,
task.package,
task.composer,
task.notes,
task.meteor
], callback);
});
// Creates meteor package.js
let meteorTask = function() {
console.info('Handling meteor release');
let
filenames = ''
;
return gulp.src(manifest.component)
.pipe(concatFileNames('empty.txt', concatSettings))
.pipe(tap(function(file) {
filenames += file.contents;
}))
.on('end', function() {
gulp.src(manifest.assets)
.pipe(concatFileNames('empty.txt', concatSettings))
.pipe(tap(function(file) {
filenames += file.contents;
}))
.on('end', function() {
// remove trailing slash
filenames = filenames.replace(regExp.match.trailingComma, '').trim();
gulp.src(release.templates.meteor.component)
.pipe(plumber())
.pipe(flatten())
.pipe(replace(regExp.match.name, regExp.replace.name))
.pipe(replace(regExp.match.titleName, regExp.replace.titleName))
.pipe(replace(regExp.match.version, version))
.pipe(replace(regExp.match.files, filenames))
.pipe(rename(release.files.meteor))
.pipe(gulp.dest(outputDirectory))
;
})
;
})
;
};
tasks.push(task.all);
tasks.push(repoTask);
tasks.push(npmTask);
tasks.push(readmeTask);
tasks.push(bowerTask);
tasks.push(packageTask);
tasks.push(composeTask);
tasks.push(releateNotesTask);
tasks.push(meteorTask);
})(component);
}
})(component);
}
gulp.series(tasks, callback);
};
module.exports = series(tasks);

4
tasks/admin/components/init.js

@ -53,6 +53,8 @@ module.exports = function(callback) {
return;
}
console.info('Init components');
// Do Git commands synchronously per component, to avoid issues
stepRepo = function() {
@ -148,6 +150,7 @@ module.exports = function(callback) {
// avoid rate throttling
global.clearTimeout(timer);
timer = global.setTimeout(function() {
console.info('Stepping to next repo');
stepRepo();
}, 0);
}
@ -165,5 +168,4 @@ module.exports = function(callback) {
stepRepo();
};

306
tasks/admin/distributions/create.js

@ -10,14 +10,16 @@
*/
let
gulp = require('gulp'),
gulp = require('gulp'),
{series, parallel} = gulp,
mergeStream = require('merge-stream'),
// node dependencies
console = require('better-console'),
del = require('del'),
fs = require('fs'),
path = require('path'),
mergeStream = require('merge-stream'),
// admin dependencies
concatFileNames = require('gulp-concat-filenames'),
@ -42,178 +44,180 @@ let
;
module.exports = function(callback) {
let
stream,
index,
tasks = []
;
console.log('Creating distributions');
console.log(release.distributions);
for(index in release.distributions) {
let
stream,
index,
tasks = []
distribution = release.distributions[index]
;
for(index in release.distributions) {
(function(distribution) {
let
distribution = release.distributions[index]
distLowerCase = distribution.toLowerCase(),
outputDirectory = path.join(release.outputRoot, distLowerCase),
packageFile = path.join(outputDirectory, release.files.npm),
repoName = release.distRepoRoot + distribution,
regExp = {
match : {
files : '{files}',
version : '{version}'
}
},
task = {},
gatherFiles,
createList
;
// streams... designed to save time and make coding fun...
(function(distribution) {
// get files for meteor
gatherFiles = function(dir) {
dir = dir || path.resolve('.');
let
distLowerCase = distribution.toLowerCase(),
outputDirectory = path.join(release.outputRoot, distLowerCase),
packageFile = path.join(outputDirectory, release.files.npm),
repoName = release.distRepoRoot + distribution,
regExp = {
match : {
files : '{files}',
version : '{version}'
}
},
task = {
all : distribution + ' copying files',
repo : distribution + ' create repo',
meteor : distribution + ' create meteor package.js',
package : distribution + ' create package.json'
},
gatherFiles,
createList
list = fs.readdirSync(dir),
omitted = [
'.git',
'node_modules',
'package.js',
'LICENSE',
'README.md',
'package.json',
'bower.json',
'.gitignore'
],
files = []
;
// get files for meteor
gatherFiles = function(dir) {
dir = dir || path.resolve('.');
list.forEach(function(file) {
let
list = fs.readdirSync(dir),
omitted = [
'.git',
'node_modules',
'package.js',
'LICENSE',
'README.md',
'package.json',
'bower.json',
'.gitignore'
],
files = []
isOmitted = (omitted.indexOf(file) > -1),
filePath = path.join(dir, file),
stat = fs.statSync(filePath)
;
list.forEach(function(file) {
let
isOmitted = (omitted.indexOf(file) > -1),
filePath = path.join(dir, file),
stat = fs.statSync(filePath)
;
if(!isOmitted) {
if(stat && stat.isDirectory()) {
files = files.concat(gatherFiles(filePath));
}
else {
files.push(filePath.replace(outputDirectory + path.sep, ''));
}
}
});
return files;
};
// spaces out list correctly
createList = function(files) {
let filenames = '';
for(let file in files) {
if(file == (files.length - 1) ) {
filenames += "'" + files[file] + "'";
if(!isOmitted) {
if(stat && stat.isDirectory()) {
files = files.concat(gatherFiles(filePath));
}
else {
filenames += "'" + files[file] + "',\n ";
files.push(filePath.replace(outputDirectory + path.sep, ''));
}
}
return filenames;
};
});
return files;
};
// spaces out list correctly
createList = function(files) {
let filenames = '';
for(let file in files) {
if(file == (files.length - 1) ) {
filenames += "'" + files[file] + "'";
}
else {
filenames += "'" + files[file] + "',\n ";
}
}
return filenames;
};
let createMeteorRelease = function() {
console.info('Creating Meteor release');
let
files = gatherFiles(outputDirectory),
filenames = createList(files)
;
return gulp.src(release.templates.meteor[distLowerCase])
.pipe(plumber())
.pipe(flatten())
.pipe(replace(regExp.match.version, version))
.pipe(replace(regExp.match.files, filenames))
.pipe(rename(release.files.meteor))
.pipe(gulp.dest(outputDirectory))
;
};
let moveFiles;
if(distribution == 'CSS') {
gulp.task(task.meteor, function() {
moveFiles = function() {
let
files = gatherFiles(outputDirectory),
filenames = createList(files)
themes,
components,
releases
;
gulp.src(release.templates.meteor[distLowerCase])
.pipe(plumber())
.pipe(flatten())
.pipe(replace(regExp.match.version, version))
.pipe(replace(regExp.match.files, filenames))
.pipe(rename(release.files.meteor))
themes = gulp.src('dist/themes/default/**/*', { base: 'dist/' })
.pipe(gulp.dest(outputDirectory))
;
});
if(distribution == 'CSS') {
gulp.task(task.repo, function() {
let
themes,
components,
releases
;
themes = gulp.src('dist/themes/default/**/*', { base: 'dist/' })
.pipe(gulp.dest(outputDirectory))
;
components = gulp.src('dist/components/*', { base: 'dist/' })
.pipe(gulp.dest(outputDirectory))
;
releases = gulp.src('dist/*', { base: 'dist/' })
.pipe(gulp.dest(outputDirectory))
;
return mergeStream(themes, components, releases);
});
}
else if(distribution == 'LESS') {
gulp.task(task.repo, function() {
let
definitions,
themeImport,
themeConfig,
siteTheme,
themes
;
definitions = gulp.src('src/definitions/**/*', { base: 'src/' })
.pipe(gulp.dest(outputDirectory))
;
themeImport = gulp.src('src/semantic.less', { base: 'src/' })
.pipe(gulp.dest(outputDirectory))
;
themeImport = gulp.src('src/theme.less', { base: 'src/' })
.pipe(gulp.dest(outputDirectory))
;
themeConfig = gulp.src('src/theme.config.example', { base: 'src/' })
.pipe(gulp.dest(outputDirectory))
;
siteTheme = gulp.src('src/_site/**/*', { base: 'src/' })
.pipe(gulp.dest(outputDirectory))
;
themes = gulp.src('src/themes/**/*', { base: 'src/' })
.pipe(gulp.dest(outputDirectory))
;
return mergeStream(definitions, themeImport, themeConfig, siteTheme, themes);
});
}
components = gulp.src('dist/components/*', { base: 'dist/' })
.pipe(gulp.dest(outputDirectory))
;
releases = gulp.src('dist/*', { base: 'dist/' })
.pipe(gulp.dest(outputDirectory))
;
return mergeStream(themes, components, releases);
};
}
else if(distribution == 'LESS') {
// extend package.json
gulp.task(task.package, function() {
return gulp.src(packageFile)
.pipe(plumber())
.pipe(jsonEditor(function(json) {
if(version) {
json.version = version;
}
return json;
}))
moveFiles = function(callback) {
let
definitions,
themeImport,
themeConfig,
siteTheme,
themes
;
definitions = gulp.src('src/definitions/**/*', { base: 'src/' })
.pipe(gulp.dest(outputDirectory))
;
});
themeImport = gulp.src('src/semantic.less', { base: 'src/' })
.pipe(gulp.dest(outputDirectory))
;
themeImport = gulp.src('src/theme.less', { base: 'src/' })
.pipe(gulp.dest(outputDirectory))
;
themeConfig = gulp.src('src/theme.config.example', { base: 'src/' })
.pipe(gulp.dest(outputDirectory))
;
siteTheme = gulp.src('src/_site/**/*', { base: 'src/' })
.pipe(gulp.dest(outputDirectory))
;
themes = gulp.src('src/themes/**/*', { base: 'src/' })
.pipe(gulp.dest(outputDirectory))
;
return mergeStream(definitions, themeImport, themeConfig, siteTheme, themes);
};
}
// extend package.json
let updatePackageJSON = function() {
console.info('Updating package.json');
return gulp.src(packageFile)
.pipe(plumber())
.pipe(jsonEditor(function(json) {
if(version) {
json.version = version;
}
return json;
}))
.pipe(gulp.dest(outputDirectory))
;
};
tasks.push(createMeteorRelease);
tasks.push(moveFiles);
tasks.push(updatePackageJSON);
})(distribution);
tasks.push(task.meteor);
tasks.push(task.repo);
tasks.push(task.package);
}
})(distribution);
}
gulp.series(tasks, callback);
};
module.exports = series(tasks);

2
tasks/admin/release.js

@ -29,7 +29,7 @@ let
/* Release All */
release = series(
build, // build Semantic
//build, // build Semantic
initDistributions, // sync with current github version
createDistributions, // update each repo with changes from master repo
initComponents, // sync with current github version

Loading…
Cancel
Save