@hologit/lens-lib 0.1.5 → 0.2.0
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 +35 -48
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -48,13 +48,6 @@ class LensRunner {
|
|
|
48
48
|
return this.execCommand(cmd, args, { ...options, $captureOutput: true });
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
// Log environment variables starting with HOLO
|
|
52
|
-
logHoloEnv() {
|
|
53
|
-
Object.entries(process.env)
|
|
54
|
-
.filter(([key]) => key.startsWith('HOLO'))
|
|
55
|
-
.forEach(([key, value]) => console.error(`${key}=${value}`));
|
|
56
|
-
}
|
|
57
|
-
|
|
58
51
|
// Export git tree
|
|
59
52
|
async exportTree(treeHash) {
|
|
60
53
|
console.error(`Exporting tree to scratch directory: ${treeHash}`);
|
|
@@ -76,8 +69,35 @@ class LensRunner {
|
|
|
76
69
|
return await this.captureCommand('git', args);
|
|
77
70
|
}
|
|
78
71
|
|
|
72
|
+
// Log environment variables starting with HOLO
|
|
73
|
+
logHoloEnv() {
|
|
74
|
+
Object.entries(process.env)
|
|
75
|
+
.filter(([key]) => key.startsWith('HOLO'))
|
|
76
|
+
.forEach(([key, value]) => console.error(`${key}=${value}`));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Helper to override environment variables
|
|
80
|
+
overrideEnv(envVars) {
|
|
81
|
+
Object.entries(envVars).forEach(([key, value]) => {
|
|
82
|
+
if (value !== undefined) {
|
|
83
|
+
process.env[key] = value;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Helper to ensure required environment variables exist
|
|
89
|
+
requireEnv(...vars) {
|
|
90
|
+
vars.forEach(varName => {
|
|
91
|
+
if (!process.env[varName]) {
|
|
92
|
+
throw new Error(`${varName} environment variable is required`);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
79
97
|
// Run the lens with common setup and error handling
|
|
80
|
-
async run(callback) {
|
|
98
|
+
static async run({ exportTree = false } = {}, callback) {
|
|
99
|
+
const runner = new LensRunner();
|
|
100
|
+
|
|
81
101
|
try {
|
|
82
102
|
const inputTree = process.argv[2];
|
|
83
103
|
if (!inputTree) {
|
|
@@ -85,16 +105,18 @@ class LensRunner {
|
|
|
85
105
|
}
|
|
86
106
|
|
|
87
107
|
// Log HOLO environment variables
|
|
88
|
-
|
|
108
|
+
runner.logHoloEnv();
|
|
89
109
|
|
|
90
110
|
// Change to work tree directory
|
|
91
|
-
process.chdir(
|
|
111
|
+
process.chdir(runner.workTree);
|
|
92
112
|
|
|
93
|
-
// Export git tree
|
|
94
|
-
|
|
113
|
+
// Export git tree if needed
|
|
114
|
+
if (exportTree) {
|
|
115
|
+
await runner.exportTree(inputTree);
|
|
116
|
+
}
|
|
95
117
|
|
|
96
118
|
// Run the lens-specific logic
|
|
97
|
-
const result = await callback(
|
|
119
|
+
const result = await callback(runner, inputTree);
|
|
98
120
|
|
|
99
121
|
// Output result
|
|
100
122
|
if (typeof result === 'string') {
|
|
@@ -106,41 +128,6 @@ class LensRunner {
|
|
|
106
128
|
process.exit(1);
|
|
107
129
|
}
|
|
108
130
|
}
|
|
109
|
-
|
|
110
|
-
// Helper to set up common environment variables
|
|
111
|
-
setupEnv(envVars) {
|
|
112
|
-
Object.entries(envVars).forEach(([key, value]) => {
|
|
113
|
-
if (value !== undefined) {
|
|
114
|
-
process.env[key] = value;
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// Helper to ensure required environment variables exist
|
|
120
|
-
requireEnv(...vars) {
|
|
121
|
-
vars.forEach(varName => {
|
|
122
|
-
if (!process.env[varName]) {
|
|
123
|
-
throw new Error(`${varName} environment variable is required`);
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// Helper to get environment variables with defaults
|
|
129
|
-
getEnv(varName, defaultValue) {
|
|
130
|
-
return process.env[varName] || defaultValue;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// Helper to create output directory
|
|
134
|
-
async createOutputDir(dir) {
|
|
135
|
-
const fs = require('fs');
|
|
136
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// Helper to write file
|
|
140
|
-
async writeFile(path, content) {
|
|
141
|
-
const fs = require('fs');
|
|
142
|
-
fs.writeFileSync(path, content);
|
|
143
|
-
}
|
|
144
131
|
}
|
|
145
132
|
|
|
146
133
|
module.exports = {
|