mirror of
https://github.com/AikidoSec/safe-chain.git
synced 2026-05-26 20:20:49 +00:00
50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
const state = {
|
|
malwareAction: undefined,
|
|
};
|
|
|
|
const SAFE_CHAIN_ARG_PREFIX = "--safe-chain-";
|
|
|
|
export function initializeCliArguments(args) {
|
|
// Reset state on each call
|
|
state.malwareAction = undefined;
|
|
|
|
const safeChainArgs = [];
|
|
const remainingArgs = [];
|
|
|
|
for (const arg of args) {
|
|
if (arg.toLowerCase().startsWith(SAFE_CHAIN_ARG_PREFIX)) {
|
|
safeChainArgs.push(arg);
|
|
} else {
|
|
remainingArgs.push(arg);
|
|
}
|
|
}
|
|
|
|
setMalwareAction(safeChainArgs);
|
|
|
|
return remainingArgs;
|
|
}
|
|
|
|
function setMalwareAction(args) {
|
|
const safeChainMalwareActionArg = SAFE_CHAIN_ARG_PREFIX + "malware-action=";
|
|
|
|
const action = getLastArgEqualsValue(args, safeChainMalwareActionArg);
|
|
if (!action) {
|
|
return;
|
|
}
|
|
state.malwareAction = action.toLowerCase();
|
|
}
|
|
|
|
function getLastArgEqualsValue(args, prefix) {
|
|
for (var i = args.length - 1; i >= 0; i--) {
|
|
const arg = args[i];
|
|
if (arg.toLowerCase().startsWith(prefix)) {
|
|
return arg.substring(prefix.length);
|
|
}
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
export function getMalwareAction() {
|
|
return state.malwareAction;
|
|
}
|