diff --git a/libexec/scoop-search.ps1 b/libexec/scoop-search.ps1 index d1d9a251e6..c824837ff3 100644 --- a/libexec/scoop-search.ps1 +++ b/libexec/scoop-search.ps1 @@ -29,13 +29,21 @@ function search_bucket($bucket, $query) { @{ name = $_ } } - if($query) { $apps = $apps | ? { - if($_.name -match $query) { return $true } - $bin = bin_match (manifest $_.name $bucket) $query - if($bin) { - $_.bin = $bin; return $true; + if($query) { + try { + $query = new-object regex $query + } catch { + abort "invalid regular expression: $($_.exception.innerexception.message)" } - } } + + $apps = $apps | ? { + if($_.name -match $query) { return $true } + $bin = bin_match (manifest $_.name $bucket) $query + if($bin) { + $_.bin = $bin; return $true; + } + } + } $apps | % { $_.version = (latest_version $_.name $bucket); $_ } }