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.
|
|
|
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__ })`
|
|
|
|
},
|
|
|
|
}),
|
|
|
|
}
|