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
JavaScript
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;