aboutsummaryrefslogtreecommitdiff
path: root/semantic/tasks/admin
diff options
context:
space:
mode:
authorFuwn <[email protected]>2020-12-14 23:29:56 -0800
committerFuwn <[email protected]>2020-12-14 23:29:56 -0800
commit002eb44eee98dc838bc854b945ab0cbf4884dd57 (patch)
tree428ae460c79baf32fba8ecf16e6fe02a88c3b971 /semantic/tasks/admin
parent:star: (diff)
downloadme-rewrite-angular.tar.xz
me-rewrite-angular.zip
Diffstat (limited to 'semantic/tasks/admin')
-rw-r--r--semantic/tasks/admin/components/create.js319
-rw-r--r--semantic/tasks/admin/components/init.js169
-rw-r--r--semantic/tasks/admin/components/update.js182
-rw-r--r--semantic/tasks/admin/distributions/create.js208
-rw-r--r--semantic/tasks/admin/distributions/init.js168
-rw-r--r--semantic/tasks/admin/distributions/update.js177
-rw-r--r--semantic/tasks/admin/publish.js24
-rw-r--r--semantic/tasks/admin/register.js55
-rw-r--r--semantic/tasks/admin/release.js28
9 files changed, 0 insertions, 1330 deletions
diff --git a/semantic/tasks/admin/components/create.js b/semantic/tasks/admin/components/create.js
deleted file mode 100644
index 58e377f..0000000
--- a/semantic/tasks/admin/components/create.js
+++ /dev/null
@@ -1,319 +0,0 @@
-/*******************************
- Create Component Repos
-*******************************/
-
-/*
- This will create individual component repositories for each SUI component
-
- * copy component files from release
- * create commonjs files as index.js for NPM release
- * create release notes that filter only items related to component
- * custom package.json file from template
- * create bower.json from template
- * create README from template
- * create meteor.js file
-*/
-
-var
- gulp = require('gulp'),
-
- // node dependencies
- fs = require('fs'),
- path = require('path'),
-
- // admin dependencies
- concatFileNames = require('gulp-concat-filenames'),
- flatten = require('gulp-flatten'),
- jsonEditor = require('gulp-json-editor'),
- plumber = require('gulp-plumber'),
- rename = require('gulp-rename'),
- replace = require('gulp-replace'),
- tap = require('gulp-tap'),
-
- // config
- config = require('../../config/user'),
- release = require('../../config/admin/release'),
- project = require('../../config/project/release'),
-
- // shorthand
- version = project.version,
- output = config.paths.output
-
-;
-
-
-module.exports = function(callback) {
- var
- stream,
- index,
- tasks = []
- ;
-
- for(index in release.components) {
-
- var
- component = release.components[index]
- ;
-
- // 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 : "',"
- },
- 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)'
- }
- ;
-
- // copy dist files into output folder adjusting asset paths
- function copyDist() {
- 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
- function createNpmModule() {
- 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
- function createReadme() {
- 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
- function extendBower() {
- 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 {
- bower.main = [
- component + '.css'
- ];
- }
- return bower;
- }))
- .pipe(gulp.dest(outputDirectory))
- ;
- }
-
- // extend package.json
- function extendPackage() {
- 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))
- ;
- }
-
- // extend composer.json
- function extendComposer(){
- 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
- function createReleaseNotes() {
- 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))
- ;
- }
-
- // Creates meteor package.js
- function createMeteorPackage() {
- 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))
- ;
- })
- ;
- })
- ;
- }
-
- tasks.push(gulp.series(
- copyDist,
- createNpmModule,
- extendBower,
- createReadme,
- extendPackage,
- extendComposer,
- createReleaseNotes,
- createMeteorPackage
- ));
- })(component);
- }
-
- gulp.series(...tasks)(callback);
-};
diff --git a/semantic/tasks/admin/components/init.js b/semantic/tasks/admin/components/init.js
deleted file mode 100644
index c9f627a..0000000
--- a/semantic/tasks/admin/components/init.js
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************
- Init Repos
-*******************************/
-
-/*
-
- This task pulls the latest version of each component from GitHub
-
- * Creates new repo if doesnt exist (locally & GitHub)
- * Adds remote it doesnt exists
- * Pulls latest changes from repo
-
-*/
-
-var
- gulp = require('gulp'),
-
- // node dependencies
- console = require('better-console'),
- del = require('del'),
- fs = require('fs'),
- path = require('path'),
- git = require('gulp-git'),
- mkdirp = require('mkdirp'),
-
- // admin files
- github = require('../../config/admin/github.js'),
- release = require('../../config/admin/release'),
- project = require('../../config/project/release'),
-
-
- // oAuth configuration for GitHub
- oAuth = fs.existsSync(__dirname + '/../../config/admin/oauth.js')
- ? require('../../config/admin/oauth')
- : false,
-
- // shorthand
- version = project.version
-;
-
-module.exports = function(callback) {
-
- var
- index = -1,
- total = release.components.length,
- timer,
- stream,
- stepRepo
- ;
-
- if(!oAuth) {
- console.error('Must add oauth token for GitHub in tasks/config/admin/oauth.js');
- return;
- }
-
- // Do Git commands synchronously per component, to avoid issues
- stepRepo = function() {
-
- index = index + 1;
-
- if(index >= total) {
- callback();
- return;
- }
-
- var
- component = release.components[index],
- outputDirectory = path.resolve(release.outputRoot + component),
- capitalizedComponent = component.charAt(0).toUpperCase() + component.slice(1),
- repoName = release.componentRepoRoot + capitalizedComponent,
-
- gitOptions = { cwd: outputDirectory },
- pullOptions = { args: '-q', cwd: outputDirectory, quiet: true },
- resetOptions = { args: '-q --hard', cwd: outputDirectory, quiet: true },
-
- gitURL = '[email protected]:' + release.org + '/' + repoName + '.git',
- repoURL = 'https://github.com/' + release.org + '/' + repoName + '/',
- localRepoSetup = fs.existsSync(path.join(outputDirectory, '.git'))
- ;
-
- console.log('Processing repository: ' + outputDirectory);
-
- // create folder if doesn't exist
- if( !fs.existsSync(outputDirectory) ) {
- mkdirp.sync(outputDirectory);
- }
-
- // clean folder
- if(release.outputRoot.search('../repos') == 0) {
- console.info('Cleaning dir', outputDirectory);
- del.sync([outputDirectory + '**/*'], {silent: true, force: true});
- }
-
- // set-up local repo
- function setupRepo() {
- if(localRepoSetup) {
- addRemote();
- }
- else {
- initRepo();
- }
- }
-
- function initRepo() {
- console.info('Initializing repository for ' + component);
- git.init(gitOptions, function(error) {
- if(error) {
- console.error('Error initializing repo', error);
- }
- addRemote();
- });
- }
-
- function createRepo() {
- console.info('Creating GitHub repo ' + repoURL);
- github.repos.createFromOrg({
- org : release.org,
- name : repoName,
- homepage : release.homepage
- }, function() {
- setupRepo();
- });
- }
-
- function addRemote() {
- console.info('Adding remote origin as ' + gitURL);
- git.addRemote('origin', gitURL, gitOptions, function(){
- pullFiles();
- });
- }
-
- function pullFiles() {
- console.info('Pulling ' + component + ' files');
- git.pull('origin', 'master', pullOptions, function(error) {
- resetFiles();
- });
- }
-
- function resetFiles() {
- console.info('Resetting files to head');
- git.reset('HEAD', resetOptions, function(error) {
- nextRepo();
- });
- }
-
- function nextRepo() {
- //console.log('Sleeping for 1 second...');
- // avoid rate throttling
- global.clearTimeout(timer);
- timer = global.setTimeout(function() {
- stepRepo()
- }, 0);
- }
-
-
- if(localRepoSetup) {
- pullFiles();
- }
- else {
- setupRepo();
- // createRepo() only use to create remote repo (easier to do manually)
- }
-
- };
-
- stepRepo();
-
-
-};
diff --git a/semantic/tasks/admin/components/update.js b/semantic/tasks/admin/components/update.js
deleted file mode 100644
index 276c9e2..0000000
--- a/semantic/tasks/admin/components/update.js
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************
- Update Repos
-*******************************/
-
-/*
-
- This task update all SUI individual component repos with new versions of components
-
- * Commits changes from create repo
- * Pushes changes to GitHub
- * Tag new releases if version changed in main repo
-
-*/
-
-var
- gulp = require('gulp'),
-
- // node dependencies
- console = require('better-console'),
- fs = require('fs'),
- path = require('path'),
- git = require('gulp-git'),
-
- // admin files
- github = require('../../config/admin/github.js'),
- release = require('../../config/admin/release'),
- project = require('../../config/project/release'),
-
-
- // oAuth configuration for GitHub
- oAuth = fs.existsSync(__dirname + '/../../config/admin/oauth.js')
- ? require('../../config/admin/oauth')
- : false,
-
- // shorthand
- version = project.version
-;
-
-module.exports = function(callback) {
-
- var
- index = -1,
- total = release.components.length,
- timer,
- stream,
- stepRepo
- ;
-
- if(!oAuth) {
- console.error('Must add oauth token for GitHub in tasks/config/admin/oauth.js');
- return;
- }
-
- // Do Git commands synchronously per component, to avoid issues
- stepRepo = function() {
-
- index = index + 1;
- if(index >= total) {
- callback();
- return;
- }
-
- var
- component = release.components[index],
- outputDirectory = path.resolve(path.join(release.outputRoot, component)),
- capitalizedComponent = component.charAt(0).toUpperCase() + component.slice(1),
- repoName = release.componentRepoRoot + capitalizedComponent,
-
- gitURL = 'https://github.com/' + release.org + '/' + repoName + '.git',
- repoURL = 'https://github.com/' + release.org + '/' + repoName + '/',
-
- commitArgs = (oAuth.name !== undefined && oAuth.email !== undefined)
- ? '--author "' + oAuth.name + ' <' + oAuth.email + '>"'
- : '',
-
- componentPackage = fs.existsSync(outputDirectory + 'package.json' )
- ? require(outputDirectory + 'package.json')
- : false,
-
- isNewVersion = (version && componentPackage.version != version),
-
- commitMessage = (isNewVersion)
- ? 'Updated component to version ' + version
- : 'Updated files from main repo',
-
- gitOptions = { cwd: outputDirectory },
- commitOptions = { args: commitArgs, cwd: outputDirectory },
- releaseOptions = { tag_name: version, owner: release.org, repo: repoName },
-
- fileModeOptions = { args : 'config core.fileMode false', cwd: outputDirectory },
- usernameOptions = { args : 'config user.name "' + oAuth.name + '"', cwd: outputDirectory },
- emailOptions = { args : 'config user.email "' + oAuth.email + '"', cwd: outputDirectory },
- versionOptions = { args : 'rev-parse --verify HEAD', cwd: outputDirectory },
-
- localRepoSetup = fs.existsSync(path.join(outputDirectory, '.git')),
- canProceed = true
- ;
-
-
- console.info('Processing repository:' + outputDirectory);
-
- function setConfig() {
- git.exec(fileModeOptions, function() {
- git.exec(usernameOptions, function () {
- git.exec(emailOptions, function () {
- commitFiles();
- });
- });
- });
- }
-
-
- // standard path
- function commitFiles() {
- // commit files
- console.info('Committing ' + component + ' files', commitArgs);
- gulp.src('./', gitOptions)
- .pipe(git.add(gitOptions))
- .pipe(git.commit(commitMessage, commitOptions))
- .on('error', function(error) {
- // canProceed = false; bug in git commit <https://github.com/stevelacy/gulp-git/issues/49>
- })
- .on('finish', function(callback) {
- if(canProceed) {
- pushFiles();
- }
- else {
- console.info('Nothing new to commit');
- nextRepo();
- }
- })
- ;
- }
-
- // push changes to remote
- function pushFiles() {
- console.info('Pushing files for ' + component);
- git.push('origin', 'master', { args: '', cwd: outputDirectory }, function(error) {
- console.info('Push completed successfully');
- getSHA();
- });
- }
-
- // gets SHA of last commit
- function getSHA() {
- git.exec(versionOptions, function(error, version) {
- version = version.trim();
- createRelease(version);
- });
- }
-
- // create release on GitHub.com
- function createRelease(version) {
- if(version) {
- releaseOptions.target_commitish = version;
- }
- github.repos.createRelease(releaseOptions, function() {
- nextRepo();
- });
- }
-
- // Steps to next repository
- function nextRepo() {
- console.log('Sleeping for 1 second...');
- // avoid rate throttling
- global.clearTimeout(timer);
- timer = global.setTimeout(stepRepo, 100);
- }
-
-
- if(localRepoSetup) {
- setConfig();
- }
- else {
- console.error('Repository must be setup before running update components');
- }
-
- };
-
- stepRepo();
-
-};
diff --git a/semantic/tasks/admin/distributions/create.js b/semantic/tasks/admin/distributions/create.js
deleted file mode 100644
index 6fe6921..0000000
--- a/semantic/tasks/admin/distributions/create.js
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************
- Create Distributions
-*******************************/
-
-/*
- This will create individual distribution repositories for each SUI distribution
-
- * copy distribution files to release
- * update package.json file
-*/
-
-var
- gulp = require('gulp'),
-
- // node dependencies
- fs = require('fs'),
- path = require('path'),
- mergeStream = require('merge-stream'),
-
- // admin dependencies
- flatten = require('gulp-flatten'),
- jsonEditor = require('gulp-json-editor'),
- plumber = require('gulp-plumber'),
- rename = require('gulp-rename'),
- replace = require('gulp-replace'),
-
- // config
- config = require('../../config/user'),
- release = require('../../config/admin/release'),
- project = require('../../config/project/release'),
-
- // shorthand
- version = project.version,
- output = config.paths.output
-
-;
-
-
-module.exports = function(callback) {
- var
- stream,
- index,
- tasks = []
- ;
-
- for(index in release.distributions) {
-
- var
- distribution = release.distributions[index]
- ;
-
- // streams... designed to save time and make coding fun...
- (function(distribution) {
-
- var
- 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
- ;
-
- // get files for meteor
- gatherFiles = function(dir) {
- var
- dir = dir || path.resolve('.'),
- list = fs.readdirSync(dir),
- omitted = [
- '.git',
- 'node_modules',
- 'package.js',
- 'LICENSE',
- 'README.md',
- 'package.json',
- 'bower.json',
- '.gitignore'
- ],
- files = []
- ;
- list.forEach(function(file) {
- var
- 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) {
- var filenames = '';
- for(var file in files) {
- if(file == (files.length - 1) ) {
- filenames += "'" + files[file] + "'";
- }
- else {
- filenames += "'" + files[file] + "',\n ";
- }
- }
- return filenames;
- };
-
- tasks.push(function() {
- var
- files = gatherFiles(outputDirectory),
- filenames = createList(files)
- ;
- 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))
- ;
- });
-
- if(distribution == 'CSS') {
- tasks.push(function() {
- var
- 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') {
- tasks.push(function() {
- var
- 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
- tasks.push(function() {
- return gulp.src(packageFile)
- .pipe(plumber())
- .pipe(jsonEditor(function(package) {
- if(version) {
- package.version = version;
- }
- return package;
- }))
- .pipe(gulp.dest(outputDirectory))
- ;
- });
-
- })(distribution);
- }
-
- gulp.series(...tasks)(callback);
-}; \ No newline at end of file
diff --git a/semantic/tasks/admin/distributions/init.js b/semantic/tasks/admin/distributions/init.js
deleted file mode 100644
index 124e131..0000000
--- a/semantic/tasks/admin/distributions/init.js
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************
- Init Dist Repos
-*******************************/
-
-/*
-
- This task pulls the latest version of distribution from GitHub
-
- * Creates new repo if doesnt exist (locally & GitHub)
- * Adds remote it doesnt exists
- * Pulls latest changes from repo
-
-*/
-
-var
- gulp = require('gulp'),
-
- // node dependencies
- console = require('better-console'),
- del = require('del'),
- fs = require('fs'),
- path = require('path'),
- git = require('gulp-git'),
- mkdirp = require('mkdirp'),
-
- // admin files
- github = require('../../config/admin/github.js'),
- release = require('../../config/admin/release'),
- project = require('../../config/project/release'),
-
-
- // oAuth configuration for GitHub
- oAuth = fs.existsSync(__dirname + '/../../config/admin/oauth.js')
- ? require('../../config/admin/oauth')
- : false,
-
- // shorthand
- version = project.version
-;
-
-module.exports = function(callback) {
-
- var
- index = -1,
- total = release.distributions.length,
- timer,
- stream,
- stepRepo
- ;
-
- if(!oAuth) {
- console.error('Must add oauth token for GitHub in tasks/config/admin/oauth.js');
- return;
- }
-
- // Do Git commands synchronously per component, to avoid issues
- stepRepo = function() {
-
- index = index + 1;
-
- if(index >= total) {
- callback();
- return;
- }
-
- var
- component = release.distributions[index],
- lowerCaseComponent = component.toLowerCase(),
- outputDirectory = path.resolve(release.outputRoot + lowerCaseComponent),
- repoName = release.distRepoRoot + component,
-
- gitOptions = { cwd: outputDirectory },
- pullOptions = { args: '-q', cwd: outputDirectory, quiet: true },
- resetOptions = { args: '-q --hard', cwd: outputDirectory, quiet: true },
- gitURL = '[email protected]:' + release.org + '/' + repoName + '.git',
- repoURL = 'https://github.com/' + release.org + '/' + repoName + '/',
- localRepoSetup = fs.existsSync(path.join(outputDirectory, '.git'))
- ;
-
- console.log('Processing repository: ' + outputDirectory);
-
- // create folder if doesn't exist
- if( !fs.existsSync(outputDirectory) ) {
- mkdirp.sync(outputDirectory);
- }
-
- // clean folder
- if(release.outputRoot.search('../repos') == 0) {
- console.info('Cleaning dir', outputDirectory);
- del.sync([outputDirectory + '**/*'], {silent: true, force: true});
- }
-
- // set-up local repo
- function setupRepo() {
- if(localRepoSetup) {
- addRemote();
- }
- else {
- initRepo();
- }
- }
-
- function initRepo() {
- console.info('Initializing repository for ' + component);
- git.init(gitOptions, function(error) {
- if(error) {
- console.error('Error initializing repo', error);
- }
- addRemote();
- });
- }
-
- function createRepo() {
- console.info('Creating GitHub repo ' + repoURL);
- github.repos.createFromOrg({
- org : release.org,
- name : repoName,
- homepage : release.homepage
- }, function() {
- setupRepo();
- });
- }
-
- function addRemote() {
- console.info('Adding remote origin as ' + gitURL);
- git.addRemote('origin', gitURL, gitOptions, function(){
- pullFiles();
- });
- }
-
- function pullFiles() {
- console.info('Pulling ' + component + ' files');
- git.pull('origin', 'master', pullOptions, function(error) {
- resetFiles();
- });
- }
-
- function resetFiles() {
- console.info('Resetting files to head');
- git.reset('HEAD', resetOptions, function(error) {
- nextRepo();
- });
- }
-
- function nextRepo() {
- //console.log('Sleeping for 1 second...');
- // avoid rate throttling
- global.clearTimeout(timer);
- timer = global.setTimeout(function() {
- stepRepo()
- }, 0);
- }
-
-
- if(localRepoSetup) {
- pullFiles();
- }
- else {
- setupRepo();
- // createRepo() only use to create remote repo (easier to do manually)
- }
-
- };
-
- stepRepo();
-
-
-};
diff --git a/semantic/tasks/admin/distributions/update.js b/semantic/tasks/admin/distributions/update.js
deleted file mode 100644
index bc3614b..0000000
--- a/semantic/tasks/admin/distributions/update.js
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************
- Update Repos
-*******************************/
-
-/*
-
- This task update all SUI individual distribution repos with new versions of distributions
-
- * Commits changes from create repo
- * Pushes changes to GitHub
- * Tag new releases if version changed in main repo
-
-*/
-
-var
- gulp = require('gulp'),
-
- // node dependencies
- console = require('better-console'),
- fs = require('fs'),
- path = require('path'),
- git = require('gulp-git'),
-
- // admin files
- github = require('../../config/admin/github.js'),
- release = require('../../config/admin/release'),
- project = require('../../config/project/release'),
-
-
- // oAuth configuration for GitHub
- oAuth = fs.existsSync(__dirname + '/../../config/admin/oauth.js')
- ? require('../../config/admin/oauth')
- : false,
-
- // shorthand
- version = project.version
-;
-
-module.exports = function(callback) {
-
- var
- index = -1,
- total = release.distributions.length,
- timer,
- stream,
- stepRepo
- ;
-
- if(!oAuth) {
- console.error('Must add oauth token for GitHub in tasks/config/admin/oauth.js');
- return;
- }
-
- // Do Git commands synchronously per distribution, to avoid issues
- stepRepo = function() {
-
- index = index + 1;
- if(index >= total) {
- callback();
- return;
- }
-
- var
- distribution = release.distributions[index],
- outputDirectory = path.resolve(path.join(release.outputRoot, distribution.toLowerCase() )),
- repoName = release.distRepoRoot + distribution,
-
- commitArgs = (oAuth.name !== undefined && oAuth.email !== undefined)
- ? '--author "' + oAuth.name + ' <' + oAuth.email + '>"'
- : '',
-
- distributionPackage = fs.existsSync(outputDirectory + 'package.json' )
- ? require(outputDirectory + 'package.json')
- : false,
-
- isNewVersion = (version && distributionPackage.version != version),
-
- commitMessage = (isNewVersion)
- ? 'Updated distribution to version ' + version
- : 'Updated files from main repo',
-
- gitOptions = { cwd: outputDirectory },
- commitOptions = { args: commitArgs, cwd: outputDirectory },
- releaseOptions = { tag_name: version, owner: release.org, repo: repoName },
-
- fileModeOptions = { args : 'config core.fileMode false', cwd: outputDirectory },
- usernameOptions = { args : 'config user.name "' + oAuth.name + '"', cwd: outputDirectory },
- emailOptions = { args : 'config user.email "' + oAuth.email + '"', cwd: outputDirectory },
- versionOptions = { args : 'rev-parse --verify HEAD', cwd: outputDirectory },
-
- localRepoSetup = fs.existsSync(path.join(outputDirectory, '.git')),
- canProceed = true
- ;
-
-
- console.info('Processing repository:' + outputDirectory);
-
- function setConfig() {
- git.exec(fileModeOptions, function() {
- git.exec(usernameOptions, function () {
- git.exec(emailOptions, function () {
- commitFiles();
- });
- });
- });
- }
-
- // standard path
- function commitFiles() {
- // commit files
- console.info('Committing ' + distribution + ' files', commitArgs);
- gulp.src('./', gitOptions)
- .pipe(git.add(gitOptions))
- .pipe(git.commit(commitMessage, commitOptions))
- .on('error', function(error) {
- // canProceed = false; bug in git commit <https://github.com/stevelacy/gulp-git/issues/49>
- })
- .on('finish', function(callback) {
- if(canProceed) {
- pushFiles();
- }
- else {
- console.info('Nothing new to commit');
- nextRepo();
- }
- })
- ;
- }
-
- // push changes to remote
- function pushFiles() {
- console.info('Pushing files for ' + distribution);
- git.push('origin', 'master', { args: '', cwd: outputDirectory }, function(error) {
- console.info('Push completed successfully');
- getSHA();
- });
- }
-
- // gets SHA of last commit
- function getSHA() {
- git.exec(versionOptions, function(error, version) {
- version = version.trim();
- createRelease(version);
- });
- }
-
- // create release on GitHub.com
- function createRelease(version) {
- if(version) {
- releaseOptions.target_commitish = version;
- }
- github.repos.createRelease(releaseOptions, function() {
- nextRepo();
- });
- }
-
- // Steps to next repository
- function nextRepo() {
- console.log('Sleeping for 1 second...');
- // avoid rate throttling
- global.clearTimeout(timer);
- timer = global.setTimeout(stepRepo, 100);
- }
-
-
- if(localRepoSetup) {
- setConfig();
- }
- else {
- console.error('Repository must be setup before running update distributions');
- }
-
- };
-
- stepRepo();
-
-};
diff --git a/semantic/tasks/admin/publish.js b/semantic/tasks/admin/publish.js
deleted file mode 100644
index f969e17..0000000
--- a/semantic/tasks/admin/publish.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************
- * Release All
- *******************************/
-
-/*
- This task update all SUI individual component repos with new versions of components
-
- * Commits changes from create components to GitHub and Tags
-
-*/
-
-var
- gulp = require('gulp')
-;
-
-/* Release All */
-module.exports = function (callback) {
-
- gulp.series(
- 'update distributions', // commit less/css versions to github
- 'update components', // commit components to github
- )(callback);
-
-}; \ No newline at end of file
diff --git a/semantic/tasks/admin/register.js b/semantic/tasks/admin/register.js
deleted file mode 100644
index d45dd29..0000000
--- a/semantic/tasks/admin/register.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************
- Register PM
-*******************************/
-
-/*
- Task to register component repos with Package Managers
- * Registers component with bower
- * Registers component with NPM
-*/
-
-var
- // node dependencies
- process = require('child_process'),
-
- // config
- release = require('../config/admin/release'),
-
- // register components and distributions
- repos = release.distributions.concat(release.components),
- total = repos.length,
- index = -1,
-
- stream,
- stepRepo
-;
-
-module.exports = function(callback) {
-
- console.log('Registering repos with package managers');
-
- // Do Git commands synchronously per component, to avoid issues
- stepRepo = function() {
- index = index + 1;
- if(index >= total) {
- callback();
- return;
- }
- var
- repo = repos[index].toLowerCase(),
- outputDirectory = release.outputRoot + repo + '/',
- exec = process.exec,
- execSettings = {cwd: outputDirectory},
- updateNPM = 'npm publish;meteor publish;'
- ;
-
- /* Register with NPM */
- exec(updateNPM, execSettings, function(err, stdout, stderr) {
- console.log(err, stdout, stderr);
- stepRepo();
- });
-
- };
- stepRepo();
-};
-
diff --git a/semantic/tasks/admin/release.js b/semantic/tasks/admin/release.js
deleted file mode 100644
index 87962af..0000000
--- a/semantic/tasks/admin/release.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************
- * Release
- *******************************/
-
-/*
- This task update all SUI individual component repos with new versions of components
-
- * Initializes repositories with current versions
- * Creates local files at ../distributions/ with each repo for release
-
-*/
-
-var
- gulp = require('gulp')
-;
-
-/* Release All */
-module.exports = function (callback) {
-
- gulp.series(
- //'build', // build Semantic
- 'init distributions', // sync with current github version
- 'create distributions', // update each repo with changes from master repo
- 'init components', // sync with current github version
- 'create components', // update each repo
- )(callback);
-
-}; \ No newline at end of file