@datadog/datadog-ci 4.4.0 → 5.1.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.
Files changed (36) hide show
  1. package/README.md +2 -3
  2. package/dist/commands/cli.d.ts +0 -1
  3. package/dist/commands/cli.js +22 -24
  4. package/dist/commands/cli.js.map +1 -1
  5. package/dist/commands/coverage/api.d.ts +0 -1
  6. package/dist/commands/coverage/api.js +9 -2
  7. package/dist/commands/coverage/api.js.map +1 -1
  8. package/dist/commands/coverage/interfaces.d.ts +6 -0
  9. package/dist/commands/coverage/upload.d.ts +1 -0
  10. package/dist/commands/coverage/upload.js +25 -0
  11. package/dist/commands/coverage/upload.js.map +1 -1
  12. package/dist/commands/elf-symbols/upload.js +9 -9
  13. package/dist/commands/elf-symbols/upload.js.map +1 -1
  14. package/dist/commands/flutter-symbols/upload.js +10 -10
  15. package/dist/commands/flutter-symbols/upload.js.map +1 -1
  16. package/dist/commands/unity-symbols/upload.js +16 -16
  17. package/dist/commands/unity-symbols/upload.js.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.js +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/package.json +9 -9
  22. package/dist/commands/dsyms/cli.d.ts +0 -2
  23. package/dist/commands/dsyms/cli.js +0 -6
  24. package/dist/commands/dsyms/cli.js.map +0 -1
  25. package/dist/commands/dsyms/interfaces.d.ts +0 -17
  26. package/dist/commands/dsyms/interfaces.js +0 -34
  27. package/dist/commands/dsyms/interfaces.js.map +0 -1
  28. package/dist/commands/dsyms/renderer.d.ts +0 -11
  29. package/dist/commands/dsyms/renderer.js +0 -93
  30. package/dist/commands/dsyms/renderer.js.map +0 -1
  31. package/dist/commands/dsyms/upload.d.ts +0 -51
  32. package/dist/commands/dsyms/upload.js +0 -338
  33. package/dist/commands/dsyms/upload.js.map +0 -1
  34. package/dist/commands/dsyms/utils.d.ts +0 -15
  35. package/dist/commands/dsyms/utils.js +0 -74
  36. package/dist/commands/dsyms/utils.js.map +0 -1
@@ -1,338 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.DsymsUploadCommand = void 0;
39
- const fs_1 = require("fs");
40
- const datadog_ci_base_1 = require("@datadog/datadog-ci-base");
41
- const constants_1 = require("@datadog/datadog-ci-base/constants");
42
- const apikey_1 = require("@datadog/datadog-ci-base/helpers/apikey");
43
- const concurrency_1 = require("@datadog/datadog-ci-base/helpers/concurrency");
44
- const env_1 = require("@datadog/datadog-ci-base/helpers/env");
45
- const errors_1 = require("@datadog/datadog-ci-base/helpers/errors");
46
- const fips_1 = require("@datadog/datadog-ci-base/helpers/fips");
47
- const glob_1 = require("@datadog/datadog-ci-base/helpers/glob");
48
- const metrics_1 = require("@datadog/datadog-ci-base/helpers/metrics");
49
- const upload_1 = require("@datadog/datadog-ci-base/helpers/upload");
50
- const utils_1 = require("@datadog/datadog-ci-base/helpers/utils");
51
- const validation = __importStar(require("@datadog/datadog-ci-base/helpers/validation"));
52
- const validation_1 = require("@datadog/datadog-ci-base/helpers/validation");
53
- const version_1 = require("@datadog/datadog-ci-base/version");
54
- const chalk_1 = __importDefault(require("chalk"));
55
- const clipanion_1 = require("clipanion");
56
- const upath_1 = __importDefault(require("upath"));
57
- const interfaces_1 = require("./interfaces");
58
- const renderer_1 = require("./renderer");
59
- const utils_2 = require("./utils");
60
- class DsymsUploadCommand extends datadog_ci_base_1.BaseCommand {
61
- constructor() {
62
- var _a, _b;
63
- super(...arguments);
64
- this.basePath = clipanion_1.Option.String({ required: true });
65
- this.configPath = clipanion_1.Option.String('--config');
66
- this.dryRun = clipanion_1.Option.Boolean('--dry-run', false);
67
- this.maxConcurrency = clipanion_1.Option.String('--max-concurrency', '20', { validator: validation.isInteger() });
68
- this.cliVersion = version_1.cliVersion;
69
- this.fips = clipanion_1.Option.Boolean('--fips', false);
70
- this.fipsIgnoreError = clipanion_1.Option.Boolean('--fips-ignore-error', false);
71
- this.fipsConfig = {
72
- fips: (_a = (0, env_1.toBoolean)(process.env[constants_1.FIPS_ENV_VAR])) !== null && _a !== void 0 ? _a : false,
73
- fipsIgnoreError: (_b = (0, env_1.toBoolean)(process.env[constants_1.FIPS_IGNORE_ERROR_ENV_VAR])) !== null && _b !== void 0 ? _b : false,
74
- };
75
- this.config = {
76
- datadogSite: 'datadoghq.com',
77
- };
78
- }
79
- execute() {
80
- return __awaiter(this, void 0, void 0, function* () {
81
- (0, fips_1.enableFips)(this.fips || this.fipsConfig.fips, this.fipsIgnoreError || this.fipsConfig.fipsIgnoreError);
82
- this.basePath = upath_1.default.normalize(this.basePath);
83
- this.context.stdout.write((0, renderer_1.renderCommandInfo)(this.basePath, this.maxConcurrency, this.dryRun));
84
- yield this.loadConfig();
85
- const { metricsLogger, apiKeyValidator } = this.createServices();
86
- const initialTime = Date.now();
87
- try {
88
- const tmpDirectory = yield (0, utils_2.createUniqueTmpDirectory)();
89
- try {
90
- const results = yield this.processAndUploadDsyms(tmpDirectory, metricsLogger, apiKeyValidator);
91
- const totalTime = (Date.now() - initialTime) / 1000;
92
- this.context.stdout.write((0, renderer_1.renderSuccessfulCommand)(results, totalTime, this.dryRun));
93
- metricsLogger.logger.gauge('duration', totalTime);
94
- return 0;
95
- }
96
- finally {
97
- yield (0, utils_2.deleteDirectory)(tmpDirectory);
98
- }
99
- }
100
- catch (error) {
101
- if (error instanceof errors_1.InvalidConfigurationError) {
102
- this.context.stdout.write((0, renderer_1.renderConfigurationError)(error));
103
- return 1;
104
- }
105
- throw error;
106
- }
107
- finally {
108
- try {
109
- yield metricsLogger.flush();
110
- }
111
- catch (err) {
112
- this.context.stdout.write(`WARN: ${err}\n`);
113
- }
114
- }
115
- });
116
- }
117
- loadConfig() {
118
- return __awaiter(this, void 0, void 0, function* () {
119
- this.config = yield (0, utils_1.resolveConfigFromFileAndEnvironment)(this.config, {
120
- apiKey: process.env.DATADOG_API_KEY || process.env.DD_API_KEY,
121
- datadogSite: process.env.DATADOG_SITE || process.env.DD_SITE,
122
- }, {
123
- configPath: this.configPath,
124
- defaultConfigPaths: ['datadog-ci.json', '../datadog-ci.json'],
125
- configFromFileCallback: (configFromFile) => {
126
- (0, validation_1.checkAPIKeyOverride)(process.env.DATADOG_API_KEY || process.env.DD_API_KEY, configFromFile.apiKey, this.context.stdout);
127
- },
128
- });
129
- });
130
- }
131
- createServices() {
132
- const metricsLogger = (0, metrics_1.getMetricsLogger)({
133
- apiKey: this.config.apiKey,
134
- datadogSite: this.config.datadogSite,
135
- defaultTags: [`cli_version:${this.cliVersion}`],
136
- prefix: 'datadog.ci.dsyms.',
137
- });
138
- const apiKeyValidator = (0, apikey_1.newApiKeyValidator)({
139
- apiKey: this.config.apiKey,
140
- datadogSite: this.config.datadogSite,
141
- metricsLogger: metricsLogger.logger,
142
- });
143
- return { metricsLogger, apiKeyValidator };
144
- }
145
- processAndUploadDsyms(tmpDirectory, metricsLogger, apiKeyValidator) {
146
- return __awaiter(this, void 0, void 0, function* () {
147
- const intermediateDirectory = (0, utils_1.buildPath)(tmpDirectory, 'datadog-ci', 'dsyms', 'intermediate');
148
- const uploadDirectory = (0, utils_1.buildPath)(tmpDirectory, 'datadog-ci', 'dsyms', 'upload');
149
- this.context.stdout.write((0, renderer_1.renderCommandDetail)(intermediateDirectory, uploadDirectory));
150
- const searchDirectory = yield this.prepareSearchDirectory(tmpDirectory);
151
- const dsyms = yield this.findDsyms(searchDirectory);
152
- const thinDsyms = yield this.processDsyms(dsyms, intermediateDirectory);
153
- const compressedDsyms = yield this.compressDsyms(thinDsyms, uploadDirectory);
154
- const requestBuilder = this.createRequestBuilder();
155
- const uploadFunction = this.createUploadFunction(requestBuilder, metricsLogger, apiKeyValidator);
156
- return (0, concurrency_1.doWithMaxConcurrency)(this.maxConcurrency, compressedDsyms, uploadFunction);
157
- });
158
- }
159
- prepareSearchDirectory(tmpDirectory) {
160
- return __awaiter(this, void 0, void 0, function* () {
161
- if (yield (0, utils_2.isZipFile)(this.basePath)) {
162
- yield (0, utils_2.unzipArchiveToDirectory)(this.basePath, tmpDirectory);
163
- return tmpDirectory;
164
- }
165
- return this.basePath;
166
- });
167
- }
168
- findDsyms(directoryPath) {
169
- return __awaiter(this, void 0, void 0, function* () {
170
- const dsymPaths = (0, glob_1.globSync)((0, utils_1.buildPath)(directoryPath, '**/*.dSYM'));
171
- const results = yield Promise.all(dsymPaths.map((bundle) => __awaiter(this, void 0, void 0, function* () {
172
- try {
173
- const { stdout } = yield (0, utils_2.executeDwarfdump)(bundle);
174
- const dwarf = this.parseDwarfdumpOutput(stdout);
175
- return [{ bundle, dwarf }];
176
- }
177
- catch (_a) {
178
- this.context.stdout.write((0, renderer_1.renderInvalidDsymWarning)(bundle));
179
- return [];
180
- }
181
- })));
182
- return results.flat();
183
- });
184
- }
185
- /**
186
- * Parses the output of `dwarfdump --uuid` command (ref.: https://www.unix.com/man-page/osx/1/dwarfdump/).
187
- * It returns one or many DWARF UUID and arch read from the output.
188
- *
189
- * Example `dwarfdump --uuid` output:
190
- * ```
191
- * $ dwarfdump --uuid DDTest.framework.dSYM
192
- * UUID: C8469F85-B060-3085-B69D-E46C645560EA (armv7) DDTest.framework.dSYM/Contents/Resources/DWARF/DDTest
193
- * UUID: 06EE3D68-D605-3E92-B92D-2F48C02A505E (arm64) DDTest.framework.dSYM/Contents/Resources/DWARF/DDTest
194
- * ```
195
- */
196
- parseDwarfdumpOutput(output) {
197
- const lineRegexp = /UUID: ([0-9A-F]{8}-(?:[0-9A-F]{4}-){3}[0-9A-F]{12}) \(([a-z0-9_]+)\) (.+)/;
198
- return output
199
- .split('\n')
200
- .map((line) => {
201
- const match = line.match(lineRegexp);
202
- return match ? [{ uuid: match[1], arch: match[2], object: match[3] }] : [];
203
- })
204
- .flat();
205
- }
206
- /**
207
- * It takes `N` dSYMs and returns `N` or more dSYMs. If a dSYM includes more than one arch slice,
208
- * it will be thinned by extracting each arch to a new dSYM in `output`.
209
- */
210
- processDsyms(dsyms, output) {
211
- return __awaiter(this, void 0, void 0, function* () {
212
- yield fs_1.promises.mkdir(output, { recursive: true });
213
- const results = yield Promise.all(dsyms.map((dsym) => __awaiter(this, void 0, void 0, function* () {
214
- // Reduce dSYMs size by extracting single UUIDs and arch slices from fat dSYMs to separate
215
- // single-arch dSYMs in intermediate location. This is to avoid exceeding intake limit whenever possible.
216
- return dsym.dwarf.length > 1 ? this.thinDsym(dsym, output) : [dsym];
217
- })));
218
- return results.flat();
219
- });
220
- }
221
- /**
222
- * It takes fat dSYM as input and returns multiple dSYMs by extracting **each arch**
223
- * to separate dSYM file. New files are saved to `output` and named by their object uuid (`<uuid>.dSYM`).
224
- *
225
- * For example, given `<source path>/Foo.dSYM/Contents/Resources/DWARF/Foo` dSYM with two arch slices: `arm64` (uuid1)
226
- * and `x86_64` (uuid2), it will:
227
- * - create `<intermediate path>/<uuid1>.dSYM/Contents/Resources/DWARF/Foo` for `arm64`,
228
- * - create `<intermediate path>/<uuid2>.dSYM/Contents/Resources/DWARF/Foo` for `x86_64`.
229
- */
230
- thinDsym(dsym, output) {
231
- return __awaiter(this, void 0, void 0, function* () {
232
- const results = yield Promise.all(dsym.dwarf.map((dwarf) => __awaiter(this, void 0, void 0, function* () {
233
- try {
234
- const bundle = (0, utils_1.buildPath)(output, `${dwarf.uuid}.dSYM`);
235
- const object = (0, utils_1.buildPath)(bundle, upath_1.default.relative(dsym.bundle, dwarf.object));
236
- yield fs_1.promises.mkdir(upath_1.default.dirname(object), { recursive: true });
237
- try {
238
- // Attempt to extract the single arch object file.
239
- // We could use the `lipo -archs` command to get the list of archs,
240
- // but it's more straightforward to just attempt to extract
241
- // the single arch.
242
- yield (0, utils_2.executeLipo)(dwarf.object, dwarf.arch, object);
243
- }
244
- catch (_a) {
245
- // The thinning using `lipo` failed, meaning the dSYM is already
246
- // a single arch dSYM. Copy the object file to the new dSYM.
247
- yield fs_1.promises.copyFile(dwarf.object, object);
248
- }
249
- yield this.copyInfoPlist(dsym.bundle, bundle);
250
- return [{ bundle, dwarf: [Object.assign(Object.assign({}, dwarf), { object })] }];
251
- }
252
- catch (error) {
253
- this.context.stdout.write((0, renderer_1.renderDSYMSlimmingFailure)(dsym, dwarf, error));
254
- return [];
255
- }
256
- })));
257
- return results.flat();
258
- });
259
- }
260
- copyInfoPlist(src, dst) {
261
- return __awaiter(this, void 0, void 0, function* () {
262
- const infoPlistPaths = (0, glob_1.globSync)((0, utils_1.buildPath)(src, '**/Info.plist'));
263
- if (infoPlistPaths.length === 0) {
264
- return;
265
- }
266
- const infoPlistPath = infoPlistPaths[0];
267
- const newInfoPlistPath = (0, utils_1.buildPath)(dst, upath_1.default.relative(src, infoPlistPath));
268
- yield fs_1.promises.mkdir(upath_1.default.dirname(newInfoPlistPath), { recursive: true });
269
- yield fs_1.promises.copyFile(infoPlistPath, newInfoPlistPath);
270
- });
271
- }
272
- compressDsyms(dsyms, output) {
273
- return __awaiter(this, void 0, void 0, function* () {
274
- yield fs_1.promises.mkdir(output, { recursive: true });
275
- return Promise.all(dsyms.map((dsym) => __awaiter(this, void 0, void 0, function* () {
276
- const archivePath = (0, utils_1.buildPath)(output, `${dsym.dwarf[0].uuid}.zip`);
277
- yield (0, utils_2.zipDirectoryToArchive)(dsym.bundle, archivePath);
278
- return new interfaces_1.CompressedDsym(archivePath, dsym);
279
- })));
280
- });
281
- }
282
- createRequestBuilder() {
283
- if (!this.config.apiKey) {
284
- throw new errors_1.InvalidConfigurationError(`Missing ${chalk_1.default.bold('DATADOG_API_KEY')} or ${chalk_1.default.bold('DD_API_KEY')} in your environment.`);
285
- }
286
- return (0, utils_1.getRequestBuilder)({
287
- apiKey: this.config.apiKey,
288
- baseUrl: (0, utils_2.getBaseIntakeUrl)(this.config.datadogSite),
289
- headers: new Map([
290
- ['DD-EVP-ORIGIN', 'datadog-ci_dsyms'],
291
- ['DD-EVP-ORIGIN-VERSION', this.cliVersion],
292
- ]),
293
- overrideUrl: 'api/v2/srcmap',
294
- });
295
- }
296
- createUploadFunction(requestBuilder, metricsLogger, apiKeyValidator) {
297
- return (dsym) => __awaiter(this, void 0, void 0, function* () {
298
- const payload = dsym.asMultipartPayload();
299
- if (this.dryRun) {
300
- this.context.stdout.write(`[DRYRUN] ${(0, renderer_1.renderUpload)(dsym)}`);
301
- return upload_1.UploadStatus.Success;
302
- }
303
- return (0, upload_1.upload)(requestBuilder)(payload, {
304
- apiKeyValidator,
305
- onError: (e) => {
306
- this.context.stdout.write((0, renderer_1.renderFailedUpload)(dsym, e.message));
307
- metricsLogger.logger.increment('failed', 1);
308
- },
309
- onRetry: (e, attempts) => {
310
- this.context.stdout.write((0, renderer_1.renderRetriedUpload)(dsym, e.message, attempts));
311
- metricsLogger.logger.increment('retries', 1);
312
- },
313
- onUpload: () => {
314
- this.context.stdout.write((0, renderer_1.renderUpload)(dsym));
315
- },
316
- retries: 5,
317
- });
318
- });
319
- }
320
- }
321
- exports.DsymsUploadCommand = DsymsUploadCommand;
322
- DsymsUploadCommand.paths = [['dsyms', 'upload']];
323
- DsymsUploadCommand.usage = clipanion_1.Command.Usage({
324
- category: 'RUM',
325
- description: 'Upload dSYM files to Datadog.',
326
- details: `
327
- This command will upload all dSYM files to Datadog in order to symbolicate crash reports received by Datadog.\n
328
- See README for details.
329
- `,
330
- examples: [
331
- ['Upload all dSYM files in Derived Data path', 'datadog-ci dsyms upload ~/Library/Developer/Xcode/DerivedData'],
332
- [
333
- 'Upload all dSYM files in a zip file (this is usually the case if your app has Bitcode enabled)',
334
- 'datadog-ci dsyms upload /path/to/folder/my_file.zip',
335
- ],
336
- ],
337
- });
338
- //# sourceMappingURL=upload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/commands/dsyms/upload.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- export declare const isZipFile: (filepath: string) => Promise<boolean>;
2
- export declare const createUniqueTmpDirectory: () => Promise<string>;
3
- export declare const deleteDirectory: (directoryPath: string) => Promise<void>;
4
- export declare const zipDirectoryToArchive: (directoryPath: string, archivePath: string) => Promise<void>;
5
- export declare const unzipArchiveToDirectory: (archivePath: string, directoryPath: string) => Promise<void>;
6
- export declare const executeDwarfdump: (dSYMPath: string) => Promise<{
7
- stderr: string;
8
- stdout: string;
9
- }>;
10
- export declare const executeLipo: (objectPath: string, arch: string, newObjectPath: string) => Promise<{
11
- stderr: string;
12
- stdout: string;
13
- }>;
14
- export declare const getBaseIntakeUrl: (datadogSite?: string) => string;
15
- export declare const pluralize: (nb: number, singular: string, plural: string) => string;
@@ -1,74 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.pluralize = exports.getBaseIntakeUrl = exports.executeLipo = exports.executeDwarfdump = exports.unzipArchiveToDirectory = exports.zipDirectoryToArchive = exports.deleteDirectory = exports.createUniqueTmpDirectory = exports.isZipFile = void 0;
16
- const promises_1 = __importDefault(require("fs/promises"));
17
- const os_1 = require("os");
18
- const utils_1 = require("@datadog/datadog-ci-base/helpers/utils");
19
- const upath_1 = __importDefault(require("upath"));
20
- const isZipFile = (filepath) => __awaiter(void 0, void 0, void 0, function* () {
21
- try {
22
- const stats = yield promises_1.default.stat(filepath);
23
- return stats.size !== 0 && upath_1.default.extname(filepath) === '.zip';
24
- }
25
- catch (error) {
26
- // Log to console "file exists yet empty" ?
27
- return false;
28
- }
29
- });
30
- exports.isZipFile = isZipFile;
31
- const createUniqueTmpDirectory = () => __awaiter(void 0, void 0, void 0, function* () {
32
- const uniqueValue = Math.random() * Number.MAX_SAFE_INTEGER;
33
- const directoryPath = (0, utils_1.buildPath)((0, os_1.tmpdir)(), uniqueValue.toString());
34
- yield promises_1.default.mkdir(directoryPath, { recursive: true });
35
- return directoryPath;
36
- });
37
- exports.createUniqueTmpDirectory = createUniqueTmpDirectory;
38
- const deleteDirectory = (directoryPath) => __awaiter(void 0, void 0, void 0, function* () {
39
- yield promises_1.default.rm(directoryPath, { recursive: true });
40
- });
41
- exports.deleteDirectory = deleteDirectory;
42
- const zipDirectoryToArchive = (directoryPath, archivePath) => __awaiter(void 0, void 0, void 0, function* () {
43
- const cwd = upath_1.default.dirname(directoryPath);
44
- const directoryName = upath_1.default.basename(directoryPath);
45
- yield (0, utils_1.execute)(`zip -r '${archivePath}' '${directoryName}'`, cwd);
46
- });
47
- exports.zipDirectoryToArchive = zipDirectoryToArchive;
48
- const unzipArchiveToDirectory = (archivePath, directoryPath) => __awaiter(void 0, void 0, void 0, function* () {
49
- yield promises_1.default.mkdir(directoryPath, { recursive: true });
50
- yield (0, utils_1.execute)(`unzip -o '${archivePath}' -d '${directoryPath}'`);
51
- });
52
- exports.unzipArchiveToDirectory = unzipArchiveToDirectory;
53
- const executeDwarfdump = (dSYMPath) => __awaiter(void 0, void 0, void 0, function* () { return (0, utils_1.execute)(`dwarfdump --uuid '${dSYMPath}'`); });
54
- exports.executeDwarfdump = executeDwarfdump;
55
- const executeLipo = (objectPath, arch, newObjectPath) => __awaiter(void 0, void 0, void 0, function* () { return (0, utils_1.execute)(`lipo '${objectPath}' -thin ${arch} -output '${newObjectPath}'`); });
56
- exports.executeLipo = executeLipo;
57
- const getBaseIntakeUrl = (datadogSite) => {
58
- if (process.env.DATADOG_DSYM_INTAKE_URL) {
59
- return process.env.DATADOG_DSYM_INTAKE_URL;
60
- }
61
- else if (datadogSite) {
62
- return 'https://sourcemap-intake.' + datadogSite;
63
- }
64
- return 'https://sourcemap-intake.datadoghq.com';
65
- };
66
- exports.getBaseIntakeUrl = getBaseIntakeUrl;
67
- const pluralize = (nb, singular, plural) => {
68
- if (nb >= 2) {
69
- return `${nb} ${plural}`;
70
- }
71
- return `${nb} ${singular}`;
72
- };
73
- exports.pluralize = pluralize;
74
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/commands/dsyms/utils.ts"],"names":[],"mappings":"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"}