unix-permissions
Version:
Swiss Army knife for Unix permissions
43 lines (28 loc) • 622 B
JavaScript
import{argv}from"node:process";
import{escapeArgs}from"./escape.js";
export const parseConfig=({yargs})=>{
const args=escapeArgs(argv.slice(2));
const{
_:[command],
permission,
permissions=[]
}=yargs.parse(args);
const argsA=[permission,...permissions].filter(isDefined).map(parseArg);
return{command,args:argsA}
};
const isDefined=(value)=>value!==undefined;
const parseArg=(value)=>{
const object=parseObject(value);
if(object!==undefined){
return object
}
return value
};
const parseObject=(value)=>{
if(typeof value!=="string"||!value.startsWith("{")){
return
}
try{
return JSON.parse(value)
}catch{}
};