aboutsummaryrefslogtreecommitdiff
path: root/semantic/tasks/admin/distributions/update.js
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/distributions/update.js
parent:star: (diff)
downloadme-rewrite-angular.tar.xz
me-rewrite-angular.zip
Diffstat (limited to 'semantic/tasks/admin/distributions/update.js')
-rw-r--r--semantic/tasks/admin/distributions/update.js177
1 files changed, 0 insertions, 177 deletions
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();
-
-};