Skip to content

Commit

Permalink
Merge pull request #39 from thomashaenig/master
Browse files Browse the repository at this point in the history
npm ready
  • Loading branch information
konne authored Nov 13, 2017
2 parents 43cd5ca + a6b2b18 commit b86261b
Show file tree
Hide file tree
Showing 23 changed files with 3,675 additions and 74 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,14 @@
*.map
*.js
*.css
*.d.ts

node_modules/
dist/

# Allow
!gulpGitPlugin.js
!gulpfile.js

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
Expand Down
10 changes: 10 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
node_modules/
src/
test/

*.yml
gulpfile.js
tsconfig.build.json
tsconfig.test.json
package-lock.json
.gitignore
87 changes: 87 additions & 0 deletions gulpGitPlugin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
var exec = require('child_process').exec

const packageJson = require("./package.json");

function execCommand (cmd) {
return new Promise((resolve, reject) => {
try {
exec(cmd, { cwd: __dirname }, (err, stdout, stderr) => {
resolve(stdout.split("commit"));
});
} catch (error) {
reject(error);
}

});
}

function getVersionNumber () {
return new Promise((resolve, reject) => {
execCommand("git log")
.then((logs) => {
logs.forEach((log) => {
let pos = log.indexOf("v:");
if (pos >= 0) {
resolve(log.substring(pos+2,pos + 8).trim());
}
});
})
.catch((error) => {
console.error("Error in getVersionNumber", error);
reject(error);
});
});
}

function getNumberOfCommits () {
return new Promise((resolve, reject) => {
execCommand("git log")
.then((logs) => {
let counter = 0;
logs.shift();
for (var log of logs) {
let pos = log.indexOf("v:");
if (pos >= 0) {
resolve(counter);
return;
}
counter ++;
}
resolve(counter);
})
.catch((error) => {
reject(error);
});
});
}

function getFullVersionString() {
return new Promise((resolve, reject) => {
let str = "";
getVersionNumber()
.then((res) => {
str += res + "+";
return getNumberOfCommits();
})
.then((res) => {
str += res + "+";
return execCommand("git rev-parse --abbrev-ref HEAD");
})
.then((res) => {
str += res[0].trim() + "+";
return execCommand("git rev-parse HEAD");
})
.then((res) => {
resolve(str += res[0].trim());
})
.catch((error) => {
reject(error);
});
});
}

module.exports = {
getVersionNumber : function () { return getVersionNumber()},
getNumberOfCommits: function () { return getNumberOfCommits()},
getFullVersionString: function () { return getFullVersionString()}
}
52 changes: 52 additions & 0 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
var gulp = require('gulp');
var less = require('gulp-less');
var path = require('path');
var rename = require('gulp-rename');
let mod = require("gulp-json-modify");
var replace = require('gulp-string-replace');

var package = require("./package.json");

var gitVersion = require("./gulpGitPlugin");

gulp.task('less', function () {
return gulp.src('./src/**/*.less')
.pipe(less({
paths: [ path.join(__dirname, 'less', 'includes') ]
}))
// .pipe(rename({dirname: ''}))
.pipe(gulp.dest('./dist'));
});

gulp.task('html', function () {
return gulp.src('./src/**/*.html')
// .pipe(rename({dirname: ''}))
.pipe(gulp.dest('./dist'));
})

gulp.task("gitversionPackage", () => {
gitVersion.getVersionNumber()
.then((versionnumber) => {
return gulp.src("./package.json")
.pipe(mod({
key: "version",
value: versionnumber
}))
.pipe(gulp.dest("./"));
})
.catch((error) => {
console.error("Error in gitversionPackage gulp task", error);
});
});

gulp.task("addVersionNumber", () => {
gitVersion.getFullVersionString()
.then((res) => {
return gulp.src('./dist/daVinci.js')
.pipe(replace(/\|GitVersionNumber\|/, res))
.pipe(gulp.dest('./dist'));
})
.catch((error) => {
console.log("Error in addVersionNumber gulp task", error);
});
});
Loading

0 comments on commit b86261b

Please sign in to comment.