You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
897 B
24 lines
897 B
import { define, ScriptLine } from "./types.js" |
|
|
|
export type HasOutputContains = { |
|
scriptOutputContains(script: ScriptLine, substring: string): ScriptLine |
|
} |
|
|
|
export const cmdHasOutputContains = { |
|
bash: define<HasOutputContains>({ |
|
scriptOutputContains: (script, substring) => { |
|
return `(${script}) | grep ${substring} || (echo "Expected output to contain ${substring}" && exit 1)` |
|
}, |
|
}), |
|
fish: define<HasOutputContains>({ |
|
scriptOutputContains: (script, substring) => { |
|
return `begin; ${script}; end | grep ${substring}; or echo "Expected output to contain ${substring}" && exit 1` |
|
}, |
|
}), |
|
powershell: define<HasOutputContains>({ |
|
scriptOutputContains: (script, substring) => { |
|
const inner: string = `${script} | Select-String ${substring}` |
|
return `$($__out__ = $(${inner}); if ($__out__ -eq $null) { exit 1 } else { $__out__ })` |
|
}, |
|
}), |
|
}
|
|
|