ppackage 2.5.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +45 -7
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -13,6 +13,7 @@ const wait = require('nyks/child_process/wait');
|
|
|
13
13
|
const trim = require('mout/string/trim');
|
|
14
14
|
const unique = require('mout/array/unique');
|
|
15
15
|
|
|
16
|
+
const get = require('mout/object/get');
|
|
16
17
|
const set = require('mout/object/set');
|
|
17
18
|
const drain = require('nyks/stream/drain');
|
|
18
19
|
|
|
@@ -33,6 +34,8 @@ const COMPOSER_PATH = "composer.json";
|
|
|
33
34
|
|
|
34
35
|
|
|
35
36
|
|
|
37
|
+
|
|
38
|
+
|
|
36
39
|
const laxParser = function(body) {
|
|
37
40
|
const tokens = new Parser().parse(body);
|
|
38
41
|
const docs = new Composer({merge : true, uniqueKeys : false}).compose(tokens);
|
|
@@ -47,7 +50,35 @@ const DOCKER_LABEL_REPOSITORY = "org.opencontainers.image.source";
|
|
|
47
50
|
const GITLAB_PATH_VERSION = ".version";
|
|
48
51
|
const GITLAB_PATH_REPOSITORY = ".repository";
|
|
49
52
|
|
|
53
|
+
//https://developer.hashicorp.com/terraform/registry/providers/publishing
|
|
54
|
+
const TF_PROVIDER_PATH = "terraform-registry-manifest.json";
|
|
55
|
+
const TF_PROVIDER_METADATA_VERSION = "metadata.version";
|
|
56
|
+
const TF_PROVIDER_METADATA_REPOSITORY = "metadata.repository";
|
|
57
|
+
|
|
58
|
+
|
|
50
59
|
let modes = {
|
|
60
|
+
|
|
61
|
+
tf_provider : {
|
|
62
|
+
file : TF_PROVIDER_PATH,
|
|
63
|
+
analyze : function() {
|
|
64
|
+
const body = fs.readFileSync(this.file, 'utf-8');
|
|
65
|
+
this.meta = JSON.parse(body);
|
|
66
|
+
let version = get(this.meta, TF_PROVIDER_METADATA_VERSION);
|
|
67
|
+
let repository = get(this.meta, TF_PROVIDER_METADATA_REPOSITORY);
|
|
68
|
+
return {version, repository};
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
commit : function({version, repository, files}) {
|
|
72
|
+
if(version)
|
|
73
|
+
set(this.meta, TF_PROVIDER_METADATA_VERSION, version);
|
|
74
|
+
if(repository)
|
|
75
|
+
set(this.meta, TF_PROVIDER_METADATA_REPOSITORY, {type : "git", url : repository});
|
|
76
|
+
|
|
77
|
+
fs.writeFileSync(this.file, JSON.stringify(this.meta, null, 2) + "\n");
|
|
78
|
+
files.push(this.file);
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
|
|
51
82
|
gitlab : {
|
|
52
83
|
file : '.gitlab-ci.yml',
|
|
53
84
|
analyze : function() {
|
|
@@ -70,6 +101,8 @@ let modes = {
|
|
|
70
101
|
}
|
|
71
102
|
|
|
72
103
|
},
|
|
104
|
+
|
|
105
|
+
|
|
73
106
|
composer : {
|
|
74
107
|
file : 'composer.json',
|
|
75
108
|
analyze : function() {
|
|
@@ -182,7 +215,7 @@ class ppackage {
|
|
|
182
215
|
|
|
183
216
|
|
|
184
217
|
let target_version = version || args.shift();
|
|
185
|
-
|
|
218
|
+
await passthru("git", ["status"]);
|
|
186
219
|
let dirty = await wait(spawn('git', ["diff-index", "--quiet", "HEAD"])).catch(() => true);
|
|
187
220
|
if(dirty && !notag)
|
|
188
221
|
throw "Working directory not clean, aborting";
|
|
@@ -219,24 +252,29 @@ class ppackage {
|
|
|
219
252
|
}
|
|
220
253
|
|
|
221
254
|
|
|
222
|
-
async gitify() {
|
|
255
|
+
async gitify(repository_url = null, branch = "master") {
|
|
256
|
+
if(!repository_url)
|
|
257
|
+
repository_url = args.shift();
|
|
258
|
+
|
|
259
|
+
if(!repository_url)
|
|
260
|
+
({repository_url} = await this._find_repo());
|
|
223
261
|
|
|
224
262
|
if(fs.existsSync(GIT_FOLDER))
|
|
225
263
|
throw `Cowardly aborting working with existing git project`;
|
|
226
264
|
|
|
227
|
-
let {repository_url} = await this._find_repo();
|
|
228
|
-
|
|
229
265
|
|
|
230
266
|
let cloneopts = ["--bare", "--config", `core.askPass=${path.join(__dirname, "bin/askpass")}`];
|
|
231
267
|
await passthru("git", ["clone", ...cloneopts, repository_url, GIT_FOLDER]);
|
|
232
268
|
|
|
233
269
|
await passthru("git", ["config", "--unset", "core.bare"]);
|
|
234
|
-
await passthru("git", ["reset",
|
|
270
|
+
await passthru("git", ["reset", branch]);
|
|
271
|
+
await passthru("git", ["checkout", branch]);
|
|
235
272
|
|
|
236
|
-
for(let line of [GITIGNORE_PATH, DOCKERIGNORE_PATH, NPMIGNORE_PATH
|
|
273
|
+
for(let line of [GITIGNORE_PATH, DOCKERIGNORE_PATH, NPMIGNORE_PATH])
|
|
237
274
|
await passthru("git", ["checkout", "--", line]).catch(()=>{});
|
|
238
275
|
|
|
239
|
-
|
|
276
|
+
|
|
277
|
+
let restore = [".git*", NPMRC_PATH];
|
|
240
278
|
if(fs.existsSync(DOCKERIGNORE_PATH)) {
|
|
241
279
|
let ignore = fs.readFileSync(DOCKERIGNORE_PATH, 'utf8');
|
|
242
280
|
restore.push(...ignore.split("\n"));
|