1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- require("dotenv").config();
- const { exec, execSync } = require("child_process");
- const { existsSync, writeFileSync, appendFileSync } = require("fs");
- const { sep } = require("path");
- const getGuiEnv = () =>
- execSync(process.platform === "win32" ? 'pip show taipy-gui | findStr "Location:"' : "pip show taipy-gui | grep Location:", {
- stdio: ["pipe", "pipe", "pipe"],
- })
- .toString()
- .trim()
- .substring(9)
- .trim();
- let TAIPY_GUI_DIR = process.env.TAIPY_GUI_DIR;
- if (!TAIPY_GUI_DIR) {
- TAIPY_GUI_DIR = getGuiEnv();
- if (existsSync(".env")) {
- appendFileSync(".env", `\nTAIPY_GUI_DIR=${TAIPY_GUI_DIR}`);
- } else {
- writeFileSync(".env", `TAIPY_GUI_DIR=${TAIPY_GUI_DIR}`);
- }
- }
- const taipy_webapp_dir = `${TAIPY_GUI_DIR}${sep}taipy${sep}gui${sep}webapp`;
- if (!existsSync(taipy_webapp_dir)) {
- console.error(`Cannot find the Taipy GUI (${taipy_webapp_dir}) webapp directory.\nMake sure TAIPY_GUI_DIR is set properly as (${getGuiEnv()}).`);
- process.exit(1);
- }
- const spinner = "|/-\\";
- let i = 0;
- let spinnerTimer;
- exec(`npm i ${taipy_webapp_dir}`)
- .on("spawn", () => {
- spinnerTimer = setInterval(() => {
- process.stdout.write("Installing the Taipy GUI library... \r" + spinner[i++]);
- i = i % spinner.length;
- }, 150);
- })
- .on("exit", (code, signal) => {
- clearInterval(spinnerTimer);
- if (code === 0) {
- console.log("\nInstallation finished");
- } else {
- console.log(`\nInstallation failed (code ${code}, signal ${signal})`);
- }
- });
|