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.
25 lines
894 B
25 lines
894 B
![]()
2 years ago
|
import { define, ScriptLine } from "./types"
|
||
|
|
||
|
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__ })`
|
||
|
},
|
||
|
}),
|
||
|
}
|