|
@@ -145,3 +145,72 @@ function dts(_source, _destination, namespace) {
|
|
|
prettier(_destination);
|
|
|
}
|
|
|
exports.dts = dts;
|
|
|
+
|
|
|
+function getGitVersion() {
|
|
|
+ const git = path.join(REPO_ROOT, '.git');
|
|
|
+ const headPath = path.join(git, 'HEAD');
|
|
|
+ let head;
|
|
|
+
|
|
|
+ try {
|
|
|
+ head = fs.readFileSync(headPath, 'utf8').trim();
|
|
|
+ } catch (e) {
|
|
|
+ return void 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (/^[0-9a-f]{40}$/i.test(head)) {
|
|
|
+ return head;
|
|
|
+ }
|
|
|
+
|
|
|
+ const refMatch = /^ref: (.*)$/.exec(head);
|
|
|
+
|
|
|
+ if (!refMatch) {
|
|
|
+ return void 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ const ref = refMatch[1];
|
|
|
+ const refPath = path.join(git, ref);
|
|
|
+
|
|
|
+ try {
|
|
|
+ return fs.readFileSync(refPath, 'utf8').trim();
|
|
|
+ } catch (e) {
|
|
|
+ // noop
|
|
|
+ }
|
|
|
+
|
|
|
+ const packedRefsPath = path.join(git, 'packed-refs');
|
|
|
+ let refsRaw;
|
|
|
+
|
|
|
+ try {
|
|
|
+ refsRaw = fs.readFileSync(packedRefsPath, 'utf8').trim();
|
|
|
+ } catch (e) {
|
|
|
+ return void 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ const refsRegex = /^([0-9a-f]{40})\s+(.+)$/gm;
|
|
|
+ let refsMatch;
|
|
|
+ const refs = {};
|
|
|
+
|
|
|
+ while (refsMatch = refsRegex.exec(refsRaw)) {
|
|
|
+ refs[refsMatch[2]] = refsMatch[1];
|
|
|
+ }
|
|
|
+
|
|
|
+ return refs[ref];
|
|
|
+}
|
|
|
+
|
|
|
+function getBundledFileHeader() {
|
|
|
+ const sha1 = getGitVersion();
|
|
|
+ const semver = require('../package.json').version;
|
|
|
+ const headerVersion = semver + '(' + sha1 + ')';
|
|
|
+
|
|
|
+ const BUNDLED_FILE_HEADER = [
|
|
|
+ '/*!-----------------------------------------------------------------------------',
|
|
|
+ ' * Copyright (c) Microsoft Corporation. All rights reserved.',
|
|
|
+ ' * Version: ' + headerVersion,
|
|
|
+ ' * Released under the MIT license',
|
|
|
+ ' * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt',
|
|
|
+ ' *-----------------------------------------------------------------------------*/',
|
|
|
+ ''
|
|
|
+ ].join('\n');
|
|
|
+
|
|
|
+ return BUNDLED_FILE_HEADER;
|
|
|
+}
|
|
|
+exports.getBundledFileHeader = getBundledFileHeader;
|