UNPKG

@donedeal0/codefather

Version:

Codefather protects your codebase by controlling who can change what. Set authorization levels, lock down files, and enforce your rules—offline via CLI or online with GitHub Actions.

2 lines • 1.62 kB
#!/usr/bin/env node 'use strict';var chunkUNDY3OR3_cjs=require('./chunk-UNDY3OR3.cjs'),chunkFS6RMYAZ_cjs=require('./chunk-FS6RMYAZ.cjs'),child_process=require('child_process'),os=require('os'),path=require('path');function c(e){try{return child_process.execSync(e,{encoding:"utf-8"}).split(os.EOL).filter(Boolean).map(r=>path.resolve(r))}catch{return []}}async function p(){let e=c("git diff --name-only"),o=c("git diff --cached --name-only"),r=c("git ls-files --others --exclude-standard"),t=c("git ls-files --deleted");return Array.from(new Set([...e,...o,...r,...t]))}function w(){try{let e=child_process.execSync("git config user.email",{encoding:"utf8"}),o=child_process.execSync("git config user.username",{encoding:"utf8"});if(!e&&!o)throw new Error;let r=chunkUNDY3OR3_cjs.a(e);return {name:o,emailPrefix:r}}catch{throw new Error(chunkUNDY3OR3_cjs.b("no-gitconfig"))}}function y(e,o,r,t){r&&chunkUNDY3OR3_cjs.c(o);let n=chunkUNDY3OR3_cjs.b(e,{committers:[t]});console.log(o,n);}async function x(){try{let e=await chunkUNDY3OR3_cjs.f(),o=await p(),r=e.options?.showAscii??!0,t=w();if(o.length===0)return y("no-changes",chunkFS6RMYAZ_cjs.c.info,r,t);let n=chunkUNDY3OR3_cjs.e(o,[t],e);return n.errors.length===0&&n.warnings.length===0?y("success",chunkFS6RMYAZ_cjs.c.success,r,t):chunkUNDY3OR3_cjs.g(n,r)}catch(e){return console.log(chunkFS6RMYAZ_cjs.c.error,e instanceof Error?e.message:String(e))}}x();Object.defineProperty(exports,"MessageType",{enumerable:true,get:function(){return chunkFS6RMYAZ_cjs.b}});Object.defineProperty(exports,"colorsMap",{enumerable:true,get:function(){return chunkFS6RMYAZ_cjs.c}});