mirror of
https://github.com/ScoopInstaller/Scoop.git
synced 2026-07-08 16:31:03 +00:00
3bcdce409b
- TODO: support install of same name apps from different buckets?
45 lines
1.0 KiB
PowerShell
45 lines
1.0 KiB
PowerShell
$bucketsdir = "$scoopdir\buckets"
|
|
|
|
function bucketdir($name) {
|
|
if(!$name) { return relpath "..\bucket" } # main bucket
|
|
|
|
"$bucketsdir\$name"
|
|
}
|
|
|
|
function known_bucket_repos {
|
|
$dir = versiondir 'scoop' 'current'
|
|
$json = "$dir\buckets.json"
|
|
gc $json -raw | convertfrom-json -ea stop
|
|
}
|
|
|
|
function known_bucket_repo($name) {
|
|
$buckets = known_bucket_repos
|
|
$buckets.$name
|
|
}
|
|
|
|
function apps_in_bucket($dir) {
|
|
gci $dir | ? { $_.name.endswith('.json') } | % { $_ -replace '.json$', '' }
|
|
}
|
|
|
|
function buckets {
|
|
$buckets = @()
|
|
if(test-path $bucketsdir) {
|
|
gci $bucketsdir | % { $buckets += $_.name }
|
|
}
|
|
$buckets
|
|
}
|
|
|
|
function find_manifest($app, $bucket) {
|
|
if ($bucket) {
|
|
$manifest = manifest $app $bucket
|
|
if ($manifest) { return $manifest, $bucket }
|
|
return $null
|
|
}
|
|
|
|
$buckets = @($null) + @(buckets) # null for main bucket
|
|
foreach($bucket in $buckets) {
|
|
$manifest = manifest $app $bucket
|
|
if($manifest) { return $manifest, $bucket }
|
|
}
|
|
}
|