@oaklean/cli
Version:
A command-line interface that provides utilities for parsing, inspecting, and converting the .oak file format, as well as interfaces used in the @oaklean suite.
77 lines • 6.19 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs = __importStar(require("fs"));
const profiler_core_1 = require("@oaklean/profiler-core");
const commander_1 = require("commander");
class CPUProfileCommands {
constructor() {
const baseCommand = commander_1.program
.command('profile')
.description('commands to convert or inspect the cpu profile\'s format');
baseCommand
.command('toCPUModel')
.description('Converts a cpu profile format that is given to a cpu model format')
.argument('<input>', 'input file path')
.argument('<output>', 'output file path')
.action(this.convertToCPUModel.bind(this));
}
static init() {
return new CPUProfileCommands();
}
convertToCPUModel(input, output) {
return __awaiter(this, void 0, void 0, function* () {
let inputPath = new profiler_core_1.UnifiedPath(input);
if (inputPath.isRelative()) {
inputPath = new profiler_core_1.UnifiedPath(process.cwd()).join(inputPath);
}
let outputPath = new profiler_core_1.UnifiedPath(output);
if (outputPath.isRelative()) {
outputPath = new profiler_core_1.UnifiedPath(process.cwd()).join(outputPath);
}
const outDir = outputPath.dirName();
const cpuProfile = JSON.parse(fs.readFileSync(inputPath.toPlatformString()).toString());
const cpuModel = new profiler_core_1.CPUModel(new profiler_core_1.UnifiedPath(__dirname).join('..'), cpuProfile, BigInt(0));
if (!fs.existsSync(outDir.toPlatformString())) {
fs.mkdirSync(outDir.toPlatformString(), { recursive: true });
}
fs.writeFileSync(outputPath.toPlatformString(), JSON.stringify(cpuModel, (key, value) => typeof value === 'bigint'
? value.toString()
: value // return everything else unchanged
, 2));
});
}
}
exports.default = CPUProfileCommands;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ1BVUHJvZmlsZUNvbW1hbmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL0NQVVByb2ZpbGVDb21tYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXdCO0FBRXhCLDBEQUFrRjtBQUNsRix5Q0FBbUM7QUFFbkMsTUFBcUIsa0JBQWtCO0lBQ3RDO1FBQ0MsTUFBTSxXQUFXLEdBQUcsbUJBQU87YUFDekIsT0FBTyxDQUFDLFNBQVMsQ0FBQzthQUNsQixXQUFXLENBQUMsMERBQTBELENBQUMsQ0FBQTtRQUV6RSxXQUFXO2FBQ1QsT0FBTyxDQUFDLFlBQVksQ0FBQzthQUNyQixXQUFXLENBQUMsbUVBQW1FLENBQUM7YUFDaEYsUUFBUSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQzthQUN0QyxRQUFRLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDO2FBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJO1FBQ1YsT0FBTyxJQUFJLGtCQUFrQixFQUFFLENBQUE7SUFDaEMsQ0FBQztJQUVLLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxNQUFjOztZQUNwRCxJQUFJLFNBQVMsR0FBRyxJQUFJLDJCQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDdEMsSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztnQkFDNUIsU0FBUyxHQUFHLElBQUksMkJBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDM0QsQ0FBQztZQUVELElBQUksVUFBVSxHQUFHLElBQUksMkJBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUN4QyxJQUFJLFVBQVUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO2dCQUM3QixVQUFVLEdBQUcsSUFBSSwyQkFBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUM3RCxDQUFDO1lBQ0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBRW5DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDdkYsTUFBTSxRQUFRLEdBQUcsSUFBSSx3QkFBUSxDQUM1QixJQUFJLDJCQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUNyQyxVQUFVLEVBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBdUIsQ0FDL0IsQ0FBQTtZQUVELElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDL0MsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQzdELENBQUM7WUFFRCxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQzdELFFBQVEsRUFDUixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNkLE9BQU8sS0FBSyxLQUFLLFFBQVE7Z0JBQ3hCLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO2dCQUNsQixDQUFDLENBQUMsS0FBSyxDQUFDLG1DQUFtQztjQUMzQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ1AsQ0FBQztLQUFBO0NBQ0Q7QUFqREQscUNBaURDIn0=