UNPKG

obsidian-plugin-config

Version:

Système d'injection pour plugins Obsidian autonomes

75 lines (63 loc) 2.21 kB
import { execSync } from "child_process"; import fs from "fs"; import path from "path"; import { askQuestion, cleanInput, createReadlineInterface, gitExec, ensureGitSync } from "./utils.js"; const rl = createReadlineInterface(); // Check if we're in the centralized config repo function isInCentralizedRepo(): boolean { const packageJsonPath = path.join(process.cwd(), "package.json"); if (!fs.existsSync(packageJsonPath)) return false; const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8")); return packageJson.name === "obsidian-plugin-config"; } async function main(): Promise<void> { try { if (process.argv.includes("-b")) { console.log("Building..."); gitExec("yarn build"); console.log("Build successful."); } // Only update exports if we're in the centralized repo and not explicitly disabled if (!process.argv.includes("-ne") && !process.argv.includes("--no-exports") && isInCentralizedRepo()) { console.log("Updating exports..."); gitExec("yarn run update-exports"); console.log("Exports updated."); } const input: string = await askQuestion("Enter commit message: ", rl); const cleanedInput = cleanInput(input); try { gitExec("git add -A"); gitExec(`git commit -m "${cleanedInput}"`); } catch { console.log("Commit already exists or failed."); return; } // get current branch name const currentBranch = execSync("git rev-parse --abbrev-ref HEAD").toString().trim(); // Ensure Git is synchronized before pushing await ensureGitSync(); try { gitExec(`git push origin ${currentBranch}`); console.log("Commit and push successful."); } catch { // new branch console.log(`New branch detected. Setting upstream for ${currentBranch}...`); gitExec(`git push --set-upstream origin ${currentBranch}`); console.log("Upstream branch set and push successful."); } } catch (error) { console.error("Error:", error instanceof Error ? error.message : String(error)); } finally { rl.close(); } } main().catch(console.error).finally(() => { console.log("Exiting..."); process.exit(); });