UNPKG

mydata-cli

Version:

A CLI tool for interacting with MyData API and managing data. Supports login, data retrieval, and more. Built with Node.js.

58 lines (49 loc) 1.8 kB
import { Command } from "commander"; import { api } from "../utils/api.js"; import { saveToken } from "../utils/config.js"; import readline from "readline"; import fs from "fs"; import path from "path"; const GITIGNORE = path.join(process.cwd(), ".gitignore"); const CONFIG_LINE = ".mycli-config.json"; const login = new Command("login") .description("Login to your account") .action(async () => { const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.question("Email: ", (email) => { rl.question("Password: ", async (password) => { try { console.log("🔐 Logging in..."); const res = await api.post("/api/login", { email, password, keepSignedIn: true, }); saveToken(res.data.accessToken); console.log("✅ Login successful!"); console.log("Logged in to: ", api.defaults.baseURL); // --- Add .mycli-config.json to .gitignore --- if (!fs.existsSync(GITIGNORE)) { fs.writeFileSync(GITIGNORE, "\n" + CONFIG_LINE); console.log("📝 Created .gitignore and added .mycli-config.json"); } else { const current = fs.readFileSync(GITIGNORE, "utf8").split("\n"); if (!current.includes(CONFIG_LINE)) { fs.appendFileSync(GITIGNORE, "\n" + CONFIG_LINE); console.log("🛡️ Added .mycli-config.json to .gitignore"); } } } catch (err) { console.error( "❌ Login failed:", err.response?.data?.error || err.message ); } rl.close(); }); }); }); export default login;