replicas-cli
Version:
CLI for managing Replicas workspaces - SSH into cloud dev environments with automatic port forwarding
84 lines • 2.67 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CONFIG_DIR = void 0;
exports.readConfig = readConfig;
exports.writeConfig = writeConfig;
exports.deleteConfig = deleteConfig;
exports.isAuthenticated = isAuthenticated;
exports.setOrganizationId = setOrganizationId;
exports.getOrganizationId = getOrganizationId;
exports.setIdeCommand = setIdeCommand;
exports.getIdeCommand = getIdeCommand;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const os_1 = __importDefault(require("os"));
const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.replicas');
exports.CONFIG_DIR = CONFIG_DIR;
const CONFIG_FILE = path_1.default.join(CONFIG_DIR, 'config.json');
function ensureConfigDir() {
if (!fs_1.default.existsSync(CONFIG_DIR)) {
fs_1.default.mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });
}
}
function readConfig() {
if (!fs_1.default.existsSync(CONFIG_FILE)) {
return null;
}
try {
const data = fs_1.default.readFileSync(CONFIG_FILE, 'utf-8');
return JSON.parse(data);
}
catch (error) {
console.error('Error reading config file:', error);
return null;
}
}
function writeConfig(config) {
ensureConfigDir();
try {
fs_1.default.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), {
mode: 0o600, // Only owner can read/write
});
}
catch (error) {
console.error('Error writing config file:', error);
throw error;
}
}
function deleteConfig() {
if (fs_1.default.existsSync(CONFIG_FILE)) {
fs_1.default.unlinkSync(CONFIG_FILE);
}
}
function isAuthenticated() {
const config = readConfig();
return config !== null && !!config.access_token;
}
function setOrganizationId(organizationId) {
const config = readConfig();
if (!config) {
throw new Error('No config file found. Please login first.');
}
config.organization_id = organizationId;
writeConfig(config);
}
function getOrganizationId() {
const config = readConfig();
return config?.organization_id || null;
}
function setIdeCommand(ideCommand) {
const config = readConfig();
if (!config) {
throw new Error('No config file found. Please login first.');
}
config.ide_command = ideCommand;
writeConfig(config);
}
function getIdeCommand() {
const config = readConfig();
return config?.ide_command || 'code';
}
//# sourceMappingURL=config.js.map