UNPKG

projecthor

Version:

Save, manage, and run project setup commands automatically from the CLI.

45 lines (44 loc) 1.51 kB
import React, { useEffect, useState } from 'react'; import { Text } from 'ink'; import { execa } from 'execa'; const projects = [ { name: "super-project", folder: 'C:\\Users\\Filippo Dembech\\CS\\Projects\\super-project\\', setupCommands: [ 'node main.js', ] }, { name: "freeuron", folder: 'C:\\Users\\Filippo Dembech\\CS\\Projects\\freeuron\\', setupCommands: [ 'code .', 'wt.exe -d .' ] } ]; export default function App({ projectName, shell }) { const [executionResult, setExecutionResult] = useState(""); const project = projects.find(project => project.name === projectName); useEffect(() => { async function execute() { if (project) { for (let command of project.setupCommands) { //console.log("executing: ", command); const { stdout } = shell ? await execa({ cwd: project.folder, shell }) `${command}` : await execa({ cwd: project.folder }) `${command}`; setExecutionResult(curr => curr + stdout); } } else { setExecutionResult(`Project '${projectName}' not found`); } } execute(); }, []); if (!executionResult) return React.createElement(Text, null, "Executing..."); return React.createElement(Text, null, executionResult); }