UNPKG

@s-hiroshi/bks

Version:

Cli bookmarks application

80 lines 4.08 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const program = require("commander"); const fs = require("fs"); const path = require("path"); const controller_1 = require("./controller/controller"); const ItemReader_1 = require("./model/ItemReader"); const ItemWriter_1 = require("./model/ItemWriter"); const ControlRepository_1 = require("./control/ControlRepository"); const NewControl_1 = require("./control/NewControl"); const SearchControl_1 = require("./control/SearchControl"); const ListControl_1 = require("./control/ListControl"); const FindControl_1 = require("./control/FindControl"); const ExpandedFinder_1 = require("./control/ExpandedFinder"); const RemoveControl_1 = require("./control/RemoveControl"); const EditControl_1 = require("./control/EditControl"); const DownloadControl_1 = require("./control/DownloadControl"); const UploadControl_1 = require("./control/UploadControl"); const HelpControl_1 = require("./control/HelpControl"); const VersionControl_1 = require("./control/VersionControl"); const ConfigureControl_1 = require("./control/ConfigureControl"); const ImportControl_1 = require("./control/ImportControl"); const createStorage_1 = require("./service/createStorage"); const HistoryReader_1 = require("./model/HistoryReader"); const HistoryWriter_1 = require("./model/HistoryWriter"); const HistoryControl_1 = require("./control/HistoryControl"); const homeDir = process.env[process.platform == "win32" ? "USERPROFILE" : "HOME"]; // If the .env file does not exist, create it require("dotenv").config({ path: `${homeDir}/.config/s-hiroshi/bks/.env` }); let storage = ""; if (!process.env.STORAGE_PATH) { (0, createStorage_1.createStorage)(`${homeDir}/.config/s-hiroshi/bks/data.json`); storage = `${homeDir}/.config/s-hiroshi/bks/data.json`; } if (process.env.STORAGE_PATH) { storage = process.env.STORAGE_PATH; } let historyStorage = ""; if (!process.env.HISTORY_STORAGE_PATH) { fs.mkdirSync(path.dirname(`${homeDir}/.config/s-hiroshi/bks/.history`), { recursive: true }, (err) => { if (err) throw err; }); // @see https://flaviocopes.com/how-to-create-empty-file-node/ fs.closeSync(fs.openSync(`${homeDir}/.config/s-hiroshi/bks/.history`, "w")); historyStorage = `${homeDir}/.config/s-hiroshi/bks/.history`; } if (process.env.HISTORY_STORAGE_PATH) { historyStorage = process.env.HISTORY_STORAGE_PATH; } const app = async () => { const reader = new ItemReader_1.ItemReader(storage); await reader.init(); const writer = new ItemWriter_1.ItemWriter(storage); const historyWriter = new HistoryWriter_1.HistoryWriter(historyStorage); await historyWriter.init(); const historyReader = new HistoryReader_1.HistoryReader(historyStorage); await historyReader.init(); const controlRepository = new ControlRepository_1.ControlRepository(); controlRepository.add(new NewControl_1.NewControl(writer)); controlRepository.add(new SearchControl_1.SearchControl()); controlRepository.add(new ListControl_1.ListControl(reader)); controlRepository.add(new FindControl_1.FindControl(reader)); controlRepository.add(new ExpandedFinder_1.ExpandedFinder(reader)); controlRepository.add(new RemoveControl_1.RemoveControl(reader, writer)); controlRepository.add(new EditControl_1.EditControl(reader, writer)); controlRepository.add(new DownloadControl_1.DowonloadControl()); controlRepository.add(new UploadControl_1.UploadControl()); controlRepository.add(new HelpControl_1.HelpControl()); controlRepository.add(new VersionControl_1.VersionControl()); controlRepository.add(new ConfigureControl_1.ConfigureControl()); controlRepository.add(new ImportControl_1.ImportControl(writer)); controlRepository.add(new HistoryControl_1.HistoryControl(historyReader)); const controller = new controller_1.Controller(reader, writer, historyWriter, controlRepository); program.parse(process.argv); controller.run(program.args); }; app(); //# sourceMappingURL=index.js.map