qilin-manager
Version:
Manager for themes and plugins - customizes Qilin with custom packages
67 lines (48 loc) • 1.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.home = exports.isLinux = exports.isMacOs = exports.isWindows = exports.writeFile = exports.readFile = undefined;
var _extends2 = require("babel-runtime/helpers/extends");
var _extends3 = _interopRequireDefault(_extends2);
exports.isDirectory = isDirectory;
exports.isPackage = isPackage;
exports.readPackage = readPackage;
exports.updatePackage = updatePackage;
var _fs = require("fs");
var _fs2 = _interopRequireDefault(_fs);
var _path = require("path");
var _path2 = _interopRequireDefault(_path);
var _util = require("util");
var _util2 = _interopRequireDefault(_util);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var readFile = exports.readFile = _util2.default.promisify(_fs2.default.readFile);
var writeFile = exports.writeFile = _util2.default.promisify(_fs2.default.writeFile);
function isDirectory(source) {
return _fs2.default.lstatSync(source).isDirectory();
}
function isPackage(source) {
return _fs2.default.existsSync(_path2.default.join(source, "package.json"));
}
function readPackage(dir) {
var base = _path2.default.basename(_path2.default.dirname(dir));
var file = _path2.default.resolve(dir, "package.json");
return readFile(file, "utf8").then(function (data) {
try {
data = JSON.parse(data);
data.directory = dir;
data.namespace = base;
data.path = file;
return data;
} catch (error) {/* … */}
});
}
function updatePackage(dir, json) {
return readPackage(dir).then(function (data) {
return writeFile(data.path, JSON.stringify((0, _extends3.default)({}, data, json)));
});
}
var isWindows = exports.isWindows = process.platform === "win32";
var isMacOs = exports.isMacOs = process.platform === "darwin";
var isLinux = exports.isLinux = !isWindows && !isMacOs;
var home = exports.home = process.env[isWindows ? "USERPROFILE" : "HOME"] || "";