@eightshone/sshman
Version:
A simple cli ssh manager
67 lines • 3.06 kB
JavaScript
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());
});
};
import { existsSync } from "fs";
import yoctoSpinner from "yocto-spinner";
import createFileIfNotExists from "../../utils/createFileIfNotExist.js";
import { CONFIG_DIR, DEFAULT_CONFIG, VERSION } from "../../utils/consts.js";
import loadFile from "../../utils/loadFile.js";
import compareVersions from "../../utils/compareVersions.js";
import migrate from "./migrate.js";
import isSameVersion from "./isSameVersion.js";
import showUpdateMessage from "./showUpdateMessage.js";
function init() {
return __awaiter(this, arguments, void 0, function* (options = { silent: false }) {
const { silent } = options;
const configFile = `${CONFIG_DIR}/config.json`;
const logsFile = `${CONFIG_DIR}/logs.json`;
let spinner;
if (!silent) {
spinner = yoctoSpinner({ text: "Checking config files…" }).start();
}
// check for app config files
if (!existsSync(configFile) || !existsSync(logsFile)) {
if (!silent) {
spinner.text = "Creating config files…";
}
yield createFileIfNotExists(configFile, JSON.stringify(DEFAULT_CONFIG));
yield createFileIfNotExists(logsFile, "[]");
if (!silent) {
spinner.text = "Config files created!";
}
}
// todo: add config files validations
// load config and logs
if (!silent) {
spinner.text = "Loading config files…";
}
let configObj = yield loadFile(`${CONFIG_DIR}/config.json`), logsObj = yield loadFile(`${CONFIG_DIR}/logs.json`);
if (!silent) {
spinner.text = "Config files loaded!";
}
if (!silent) {
spinner.text = "Checking config compatibility…";
}
if (!configObj.version ||
(!!configObj.version && compareVersions(VERSION, configObj.version) === 1)) {
[configObj, logsObj] = yield migrate(configObj, logsObj, spinner);
}
const [isUptodate, manager] = yield isSameVersion();
if (!silent) {
spinner === null || spinner === void 0 ? void 0 : spinner.success("App started!");
}
showUpdateMessage(isUptodate, manager, true);
return {
config: configObj,
logs: logsObj,
};
});
}
export default init;
//# sourceMappingURL=init.js.map