71 lines
2.9 KiB
JavaScript
71 lines
2.9 KiB
JavaScript
#! /usr/bin/env node
|
|
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const fs_1 = __importDefault(require("fs"));
|
|
const path_1 = __importDefault(require("path"));
|
|
const child_process_1 = require("child_process");
|
|
const env_1 = __importDefault(require("./utils/env"));
|
|
const confFileProvidedPath = process.argv[process.argv.length - 1];
|
|
if (confFileProvidedPath === "--version" || confFileProvidedPath === "-v") {
|
|
try {
|
|
const packageJson = fs_1.default.readFileSync(path_1.default.resolve(__dirname, "package.json"), "utf8");
|
|
console.log(`Turbo Sync Version: ${JSON.parse(packageJson).version}`);
|
|
}
|
|
catch (error) {
|
|
console.log("Turbo Sync Version fetch failed! \nNo Worries, Turbo Sync is still installed properly");
|
|
}
|
|
process.exit(6);
|
|
}
|
|
console.log("Running Folder Sync ...");
|
|
const defaultConfigFilePath = path_1.default.resolve(process.cwd(), "turbosync.config.json");
|
|
const confFileComputedPath = typeof confFileProvidedPath == "string" &&
|
|
confFileProvidedPath.endsWith(".json")
|
|
? path_1.default.resolve(process.cwd(), confFileProvidedPath)
|
|
: null;
|
|
if (!fs_1.default.existsSync(defaultConfigFilePath) && !confFileComputedPath) {
|
|
console.log("Please Provide the path to a config file or add a config file named `turbosync.config.json` to the path you're running this program");
|
|
process.exit();
|
|
}
|
|
if (!defaultConfigFilePath &&
|
|
confFileComputedPath &&
|
|
!fs_1.default.existsSync(confFileComputedPath)) {
|
|
console.log("Config File does not exist");
|
|
process.exit();
|
|
}
|
|
try {
|
|
const configFinalPath = fs_1.default.existsSync(defaultConfigFilePath)
|
|
? defaultConfigFilePath
|
|
: confFileComputedPath && fs_1.default.existsSync(confFileComputedPath)
|
|
? confFileComputedPath
|
|
: null;
|
|
const configJSON = configFinalPath
|
|
? fs_1.default.readFileSync(configFinalPath, "utf8")
|
|
: null;
|
|
if (!configJSON)
|
|
throw new Error("Config JSON could not be resolved. Please check your files.");
|
|
const parsedConfigJSON = (0, env_1.default)({ json: configJSON });
|
|
/** @type {import(".").TurboSyncConfigArray} */
|
|
const configArray = JSON.parse(parsedConfigJSON);
|
|
for (let i = 0; i < configArray.length; i++) {
|
|
const config = configArray[i];
|
|
console.log(`Syncing \`${config.title} ...\``);
|
|
const childProcess = (0, child_process_1.spawn)("node", [
|
|
path_1.default.resolve(__dirname, "./lib/sync.js"),
|
|
`${JSON.stringify(config)}`,
|
|
], {
|
|
stdio: "inherit",
|
|
detached: false,
|
|
});
|
|
}
|
|
}
|
|
catch (error) {
|
|
console.log(`Process Error =>`, error.message);
|
|
process.exit();
|
|
}
|
|
setInterval(() => {
|
|
console.log(`Turbo Sync Running for ${process.uptime().toLocaleString()}s ...`);
|
|
}, 60000);
|