mirror of
https://github.com/ScoopInstaller/Scoop.git
synced 2025-12-01 13:52:49 +00:00
Compare commits
5 Commits
v0.5.1
...
feature/se
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc08222f3d | ||
|
|
8b8279b9d3 | ||
|
|
495e3adb61 | ||
|
|
68265633fc | ||
|
|
80aa5f4df1 |
@@ -12,14 +12,10 @@ indent_style = space
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.{[Bb][Aa][Tt],[Cc][Mm][Dd]}]
|
||||
[*.{bat,cmd,[Bb][Aa][Tt],[Cc][Mm][Dd]]
|
||||
# DOS/Win *requires* BAT/CMD files to have CRLF newlines
|
||||
end_of_line = crlf
|
||||
|
||||
[*.{yml, yaml}]
|
||||
indent_size = 2
|
||||
|
||||
# Makefiles require tab indentation
|
||||
[{{M,m,GNU}akefile{,.*},*.mak,*.mk}]
|
||||
[[Mm]akefile{,.*}]
|
||||
# TAB-style indentation
|
||||
indent_style = tab
|
||||
end_of_line = lf
|
||||
|
||||
47
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
47
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
@@ -1,47 +0,0 @@
|
||||
---
|
||||
name: "Bug Report"
|
||||
about: "I am facing some problems."
|
||||
title: '[Bug] '
|
||||
labels: "bug"
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
IMPORTANT:
|
||||
If your problem is related to a specific package, open the issue in the relevant bucket,
|
||||
not here.
|
||||
By opening this issue you confirm that you have searched for similar issues/PRs here already.
|
||||
Failing to do so will most likely result in closing of this issue without any explanation.
|
||||
Incomplete form details below might also result in closing of the issue.
|
||||
-->
|
||||
|
||||
## Bug Report
|
||||
|
||||
#### Current Behavior
|
||||
<!-- A clear and concise description of the behavior. -->
|
||||
|
||||
#### Expected Behavior
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
#### Additional context/output
|
||||
<!-- Add any other context about the problem here. If applicable, paste terminal output here to help explain. -->
|
||||
|
||||
#### Possible Solution
|
||||
<!--- Only if you have suggestions on a fix for the bug -->
|
||||
|
||||
### System details
|
||||
|
||||
**Windows version:** [e.g. 7, 8, 10, 11]
|
||||
|
||||
**OS architecture:** [e.g. 32bit, 64bit, arm64]
|
||||
|
||||
**PowerShell version:** [output of `"$($PSVersionTable.PSVersion)"`]
|
||||
|
||||
**Additional software:** [(optional) e.g. ConEmu, Git]
|
||||
|
||||
#### Scoop Configuration
|
||||
<!-- Can be found in ~/.config/scoop/config.json -->
|
||||
|
||||
```json
|
||||
//# Your configuration here
|
||||
```
|
||||
27
.github/ISSUE_TEMPLATE/Feature_request.md
vendored
27
.github/ISSUE_TEMPLATE/Feature_request.md
vendored
@@ -1,27 +0,0 @@
|
||||
---
|
||||
name: "Feature Request"
|
||||
about: "I have a suggestion (and may want to implement it)!"
|
||||
title: '[Feature] '
|
||||
labels: "enhancement"
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
IMPORTANT:
|
||||
If your request is related to a specific package, open the issue in the relevant bucket,
|
||||
not here.
|
||||
By opening this issue you confirm that you have searched for similar issues/PRs here already.
|
||||
Failing to do so will most likely result in closing of this issue without any explanation.
|
||||
Incomplete form details below might also result in closing of the issue.
|
||||
-->
|
||||
|
||||
## Feature Request
|
||||
|
||||
#### Is your feature request related to a problem? Please describe.
|
||||
<!-- A clear and concise description of what the problem is. Ex. I have an issue when [...] -->
|
||||
|
||||
#### Describe the solution you'd like
|
||||
<!-- A clear and concise description of what you want to happen. Add any considered drawbacks. -->
|
||||
|
||||
#### Describe alternatives you've considered
|
||||
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
|
||||
2
.github/ISSUE_TEMPLATE/config.yml
vendored
2
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,2 +0,0 @@
|
||||
blank_issues_enabled: false
|
||||
|
||||
35
.github/PULL_REQUEST_TEMPLATE.md
vendored
35
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,35 +0,0 @@
|
||||
<!-- Provide a general summary of your changes in the Title above -->
|
||||
<!-- To help with semantic versioning the PR title should start with one of the conventional commit types. -->
|
||||
<!-- The conventional commit types for Semantic PR are: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert -->
|
||||
|
||||
<!--
|
||||
By opening this PR you confirm that you have searched for similar issues/PRs here already.
|
||||
Failing to do so will most likely result in closing of this PR without any explanation.
|
||||
It is also mandatory to open a relevant issue for discussion with the maintainers,
|
||||
before creating any new PR.
|
||||
Read the contributing guide first to save both your and our time.
|
||||
-->
|
||||
|
||||
#### Description
|
||||
<!-- Describe your changes in detail -->
|
||||
|
||||
#### Motivation and Context
|
||||
<!-- Why is this change required? What problem does it solve? -->
|
||||
<!-- If it fixes an open issue, please link to the issue here. -->
|
||||
Closes #XXXX
|
||||
<!-- or -->
|
||||
Relates to #XXXX
|
||||
|
||||
#### How Has This Been Tested?
|
||||
<!-- Please describe in detail how you tested your changes. -->
|
||||
<!-- Include details of your testing environment, tests ran to see how -->
|
||||
<!-- your change affects other areas of the code, etc. -->
|
||||
|
||||
#### Checklist:
|
||||
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
||||
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
|
||||
- [ ] I have read the [Contributing Guide](https://github.com/ScoopInstaller/.github/blob/main/.github/CONTRIBUTING.md).
|
||||
- [ ] I have ensured that I am targeting the `develop` branch.
|
||||
- [ ] I have updated the documentation accordingly.
|
||||
- [ ] I have updated the tests accordingly.
|
||||
- [ ] I have added an entry in the CHANGELOG.
|
||||
8
.github/dependabot.yml
vendored
8
.github/dependabot.yml
vendored
@@ -1,8 +0,0 @@
|
||||
---
|
||||
# ~/.github/dependabot.yml
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/" # == /.github/workflows/
|
||||
schedule:
|
||||
interval: "daily"
|
||||
39
.github/workflows/ci.yml
vendored
39
.github/workflows/ci.yml
vendored
@@ -1,39 +0,0 @@
|
||||
name: Scoop Core CI Tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test_powershell:
|
||||
name: WindowsPowerShell
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@main
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- name: Init Test Suite
|
||||
uses: potatoqualitee/psmodulecache@main
|
||||
with:
|
||||
modules-to-cache: BuildHelpers
|
||||
shell: powershell
|
||||
- name: Test Scoop Core
|
||||
shell: powershell
|
||||
run: ./test/bin/test.ps1
|
||||
test_pwsh:
|
||||
name: PowerShell
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@main
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- name: Init Test Suite
|
||||
uses: potatoqualitee/psmodulecache@main
|
||||
with:
|
||||
modules-to-cache: BuildHelpers
|
||||
shell: pwsh
|
||||
- name: Test Scoop Core
|
||||
shell: pwsh
|
||||
run: ./test/bin/test.ps1
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,9 +1,6 @@
|
||||
*.log
|
||||
.DS_Store
|
||||
._.DS_Store
|
||||
scoop.sublime-workspace
|
||||
test/installer/tmp/*
|
||||
test/tmp/*
|
||||
*~
|
||||
TestResults.xml
|
||||
supporting/sqlite/*
|
||||
|
||||
6
.vscode/extensions.json
vendored
6
.vscode/extensions.json
vendored
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"EditorConfig.EditorConfig",
|
||||
"ms-vscode.PowerShell"
|
||||
]
|
||||
}
|
||||
18
.vscode/settings.json
vendored
18
.vscode/settings.json
vendored
@@ -1,18 +0,0 @@
|
||||
// Configure PSScriptAnalyzer settings
|
||||
{
|
||||
"powershell.scriptAnalysis.settingsPath": "PSScriptAnalyzerSettings.psd1",
|
||||
"powershell.codeFormatting.preset": "OTBS",
|
||||
"powershell.codeFormatting.alignPropertyValuePairs": true,
|
||||
"powershell.codeFormatting.ignoreOneLineBlock": true,
|
||||
"powershell.codeFormatting.useConstantStrings": true,
|
||||
"powershell.codeFormatting.useCorrectCasing": true,
|
||||
"powershell.codeFormatting.whitespaceBetweenParameters": true,
|
||||
"files.exclude": {
|
||||
"**/.git": true,
|
||||
"**/.svn": true,
|
||||
"**/.hg": true,
|
||||
"**/CVS": true,
|
||||
"**/.DS_Store": true,
|
||||
"**/tmp": true
|
||||
}
|
||||
}
|
||||
885
CHANGELOG.md
885
CHANGELOG.md
@@ -1,885 +0,0 @@
|
||||
## [v0.5.1](https://github.com/ScoopInstaller/Scoop/compare/v0.5.0...v0.5.1) - 2024-07-16
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **scoop-alias:** Pass options correctly ([#6003](https://github.com/ScoopInstaller/Scoop/issues/6003))
|
||||
- **scoop-virustotal:** Adjust `json_path` parameters to retrieve correct analysis stats ([#6044](https://github.com/ScoopInstaller/Scoop/issues/6044))
|
||||
- **bucket:** Implement error handling for failed bucket addition ([#6051](https://github.com/ScoopInstaller/Scoop/issues/6051))
|
||||
- **database:** Fix compatibility with Windows PowerShell ([#6045](https://github.com/ScoopInstaller/Scoop/issues/6045))
|
||||
- **install:** Expand `env_set` items before setting Environment Variables ([#6050](https://github.com/ScoopInstaller/Scoop/issues/6050))
|
||||
- **install:** Fix parsing error when installing multiple apps w/ specific version ([#6039](https://github.com/ScoopInstaller/Scoop/issues/6039))
|
||||
|
||||
## [v0.5.0](https://github.com/ScoopInstaller/Scoop/compare/v0.4.2...v0.5.0) - 2024-07-01
|
||||
|
||||
### Features
|
||||
|
||||
- **scoop-search:** Use SQLite for caching apps to speed up local search ([#5851](https://github.com/ScoopInstaller/Scoop/issues/5851), [#5918](https://github.com/ScoopInstaller/Scoop/issues/5918), [#5946](https://github.com/ScoopInstaller/Scoop/issues/5946), [#5949](https://github.com/ScoopInstaller/Scoop/issues/5949), [#5955](https://github.com/ScoopInstaller/Scoop/issues/5955), [#5966](https://github.com/ScoopInstaller/Scoop/issues/5966), [#5967](https://github.com/ScoopInstaller/Scoop/issues/5967), [#5981](https://github.com/ScoopInstaller/Scoop/issues/5981))
|
||||
- **core:** New cache filename format ([#5929](https://github.com/ScoopInstaller/Scoop/issues/5929), [#5944](https://github.com/ScoopInstaller/Scoop/issues/5944))
|
||||
- **decompress:** Use innounp-unicode as default Inno Setup Unpacker ([#6028](https://github.com/ScoopInstaller/Scoop/issues/6028))
|
||||
- **install:** Added the ability to install specific version of app from URL/file link ([#5988](https://github.com/ScoopInstaller/Scoop/issues/5988))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **scoop-download|install|update:** Use consistent options ([#5956](https://github.com/ScoopInstaller/Scoop/issues/5956))
|
||||
- **scoop-info:** Fix download size estimating ([#5958](https://github.com/ScoopInstaller/Scoop/issues/5958))
|
||||
- **scoop-search:** Catch error of parsing invalid manifest ([#5930](https://github.com/ScoopInstaller/Scoop/issues/5930))
|
||||
- **checkver:** Correct variable 'regex' to 'regexp' ([#5993](https://github.com/ScoopInstaller/Scoop/issues/5993))
|
||||
- **checkver:** Correct error messages ([#6024](https://github.com/ScoopInstaller/Scoop/issues/6024))
|
||||
- **core:** Search for Git executable instead of any cmdlet ([#5998](https://github.com/ScoopInstaller/Scoop/issues/5998))
|
||||
- **core:** Use correct path in 'bash' ([#6006](https://github.com/ScoopInstaller/Scoop/issues/6006))
|
||||
- **core:** Limit the number of commands to get when search for git executable ([#6013](https://github.com/ScoopInstaller/Scoop/pull/6013))
|
||||
- **decompress:** Match `extract_dir`/`extract_to` and archives ([#5983](https://github.com/ScoopInstaller/Scoop/issues/5983))
|
||||
- **json:** Serialize jsonpath return ([#5921](https://github.com/ScoopInstaller/Scoop/issues/5921))
|
||||
- **shim:** Restore original path for JAR cmd ([#6030](https://github.com/ScoopInstaller/Scoop/issues/6030))
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
- **decompress:** Use 7zip to extract Zstd archive ([#5973](https://github.com/ScoopInstaller/Scoop/issues/5973))
|
||||
- **install:** Separate archive extraction from downloader ([#5951](https://github.com/ScoopInstaller/Scoop/issues/5951))
|
||||
- **install:** Replace 'run_(un)installer()' with 'Invoke-Installer()' ([#5968](https://github.com/ScoopInstaller/Scoop/issues/5968), [#5971](https://github.com/ScoopInstaller/Scoop/issues/5971))
|
||||
|
||||
## [v0.4.2](https://github.com/ScoopInstaller/Scoop/compare/v0.4.1...v0.4.2) - 2024-05-14
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **autoupdate:** Copy `PSCustomObject`-type properties within `substitute()` to prevent reference changes ([#5934](https://github.com/ScoopInstaller/Scoop/issues/5934), [#5962](https://github.com/ScoopInstaller/Scoop/issues/5962))
|
||||
- **core:** Fix `Invoke-ExternalCommand` quoting rules ([#5945](https://github.com/ScoopInstaller/Scoop/issues/5945))
|
||||
- **system:** Fix argument passing to `Split-PathLikeEnvVar()` in deprecated `strip_path()` ([#5937](https://github.com/ScoopInstaller/Scoop/issues/5937))
|
||||
|
||||
## [v0.4.1](https://github.com/ScoopInstaller/Scoop/compare/v0.4.0...v0.4.1) - 2024-04-25
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **core:** Fix `Invoke-ExternalCommand` regression ([#5923](https://github.com/ScoopInstaller/Scoop/issues/5923))
|
||||
|
||||
## [v0.4.0](https://github.com/ScoopInstaller/Scoop/compare/v0.3.1...v0.4.0) - 2024-04-18
|
||||
|
||||
### Features
|
||||
|
||||
- **scoop-update:** Add support for parallel syncing buckets in PowerShell 7 and improve output ([#5122](https://github.com/ScoopInstaller/Scoop/issues/5122))
|
||||
- **bucket:** Switch nirsoft bucket to ScoopInstaller/Nirsoft ([#5328](https://github.com/ScoopInstaller/Scoop/issues/5328))
|
||||
- **bucket:** Make official buckets higher priority ([#5398](https://github.com/ScoopInstaller/Scoop/issues/5398))
|
||||
- **config:** Support portable config file ([#5369](https://github.com/ScoopInstaller/Scoop/issues/5369))
|
||||
- **core:** Add `-Quiet` switch for `Invoke-ExternalCommand` ([#5346](https://github.com/ScoopInstaller/Scoop/issues/5346))
|
||||
- **core:** Allow global install of PowerShell modules ([#5611](https://github.com/ScoopInstaller/Scoop/issues/5611))
|
||||
- **path:** Isolate Scoop apps' PATH ([#5840](https://github.com/ScoopInstaller/Scoop/issues/5840))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **scoop-alias:** Prevent overwrite existing file when adding alias ([#5577](https://github.com/ScoopInstaller/Scoop/issues/5577))
|
||||
- **scoop-checkup:** Skip defender check in Windows Sandbox ([#5519](https://github.com/ScoopInstaller/Scoop/issues/5519))
|
||||
- **scoop-checkup:** Change the message level of helpers from ERROR to WARN ([#5614](https://github.com/ScoopInstaller/Scoop/issues/5614))
|
||||
- **scoop-checkup:** Don't throw 7zip error when external 7zip is used ([#5703](https://github.com/ScoopInstaller/Scoop/issues/5703))
|
||||
- **scoop-(un)hold:** Correct output the messages when manifest not found, (already|not) held ([#5519](https://github.com/ScoopInstaller/Scoop/issues/5519))
|
||||
- **scoop-info:** Fix errors in file size collection when `--verbose` ([#5352](https://github.com/ScoopInstaller/Scoop/issues/5352))
|
||||
- **scoop-reset:** Don't abort when multiple apps are passed and an app is running ([#5687](https://github.com/ScoopInstaller/Scoop/issues/5687))
|
||||
- **scoop-update:** Change error message to a better instruction ([#5677](https://github.com/ScoopInstaller/Scoop/issues/5677))
|
||||
- **scoop-virustotal:** Fix `scoop-virustotal` when `--all` has been passed without app ([#5593](https://github.com/ScoopInstaller/Scoop/issues/5593))
|
||||
- **scoop-virustotal:** Fix the issue that escape character not available in PowerShell 5.1 ([#5870](https://github.com/ScoopInstaller/Scoop/issues/5870))
|
||||
- **autoupdate:** Fix file hash extraction ([#5295](https://github.com/ScoopInstaller/Scoop/issues/5295))
|
||||
- **autoupdate:** Fix bug that 'WebClient' doesn't auto-extract 'gzip' ([#5901](https://github.com/ScoopInstaller/Scoop/issues/5901))
|
||||
- **buckets:** Avoid error messages for unexpected dir ([#5549](https://github.com/ScoopInstaller/Scoop/issues/5549))
|
||||
- **config:** Warn users about misconfigured GitHub token ([#5777](https://github.com/ScoopInstaller/Scoop/issues/5777))
|
||||
- **core:** Fix scripts' calling parameters ([#5365](https://github.com/ScoopInstaller/Scoop/issues/5365))
|
||||
- **core:** Fix `is_in_dir` under Unix ([#5391](https://github.com/ScoopInstaller/Scoop/issues/5391))
|
||||
- **core:** Rewrite config file when needed ([#5439](https://github.com/ScoopInstaller/Scoop/issues/5439))
|
||||
- **core:** Prevents leaking HTTP(S)_PROXY env vars to current sessions after Invoke-Git in parallel execution ([#5436](https://github.com/ScoopInstaller/Scoop/issues/5436))
|
||||
- **core:** Handle scoop aliases and broken(edited,copied) shim ([#5551](https://github.com/ScoopInstaller/Scoop/issues/5551))
|
||||
- **core:** Avoid error messages when deleting non-existent environment variable ([#5547](https://github.com/ScoopInstaller/Scoop/issues/5547))
|
||||
- **core:** Use relative path as fallback of `$scoopdir` ([#5544](https://github.com/ScoopInstaller/Scoop/issues/5544))
|
||||
- **core:** Fix detection of Git ([#5545](https://github.com/ScoopInstaller/Scoop/issues/5545))
|
||||
- **core:** Do not call `scoop` externally from inside the code ([#5695](https://github.com/ScoopInstaller/Scoop/issues/5695))
|
||||
- **core:** Fix arguments parsing method of `Invoke-ExternalCommand()` ([#5839](https://github.com/ScoopInstaller/Scoop/issues/5839))
|
||||
- **decompress:** Exclude '*.nsis' that may cause error ([#5294](https://github.com/ScoopInstaller/Scoop/issues/5294))
|
||||
- **decompress:** Remove unused parent dir w/ 'extract_dir' ([#5682](https://github.com/ScoopInstaller/Scoop/issues/5682))
|
||||
- **decompress:** Use `wix.exe` in WiX Toolset v4+ as primary extractor of `Expand-DarkArchive()` ([#5871](https://github.com/ScoopInstaller/Scoop/issues/5871))
|
||||
- **env:** Avoid automatic expansion of `%%` in env ([#5395](https://github.com/ScoopInstaller/Scoop/issues/5395), [#5452](https://github.com/ScoopInstaller/Scoop/issues/5452), [#5631](https://github.com/ScoopInstaller/Scoop/issues/5631))
|
||||
- **getopt:** Stop split arguments in `getopt()` and ensure array by explicit arguments type ([#5326](https://github.com/ScoopInstaller/Scoop/issues/5326))
|
||||
- **install:** Fix download from private GitHub repositories ([#5361](https://github.com/ScoopInstaller/Scoop/issues/5361))
|
||||
- **install:** Avoid error when unlinking non-existent junction/hardlink ([#5552](https://github.com/ScoopInstaller/Scoop/issues/5552))
|
||||
- **manifest:** Correct source of manifest ([#5575](https://github.com/ScoopInstaller/Scoop/issues/5575))
|
||||
- **shim:** Remove console window for GUI applications ([#5559](https://github.com/ScoopInstaller/Scoop/issues/5559))
|
||||
- **shim:** Use bash executable directly ([#5433](https://github.com/ScoopInstaller/Scoop/issues/5433))
|
||||
- **shim:** Check literal path in `Get-ShimPath` ([#5680](https://github.com/ScoopInstaller/Scoop/issues/5680))
|
||||
- **shim:** Avoid unexpected output of `list` subcommand ([#5681](https://github.com/ScoopInstaller/Scoop/issues/5681))
|
||||
- **shim:** Allow GUI applications to attach to the shell's console when launched using the GUI shim ([#5721](https://github.com/ScoopInstaller/Scoop/issues/5721))
|
||||
- **shim:** Run JAR file from app's root directory ([#5872](https://github.com/ScoopInstaller/Scoop/issues/5872))
|
||||
- **shortcuts:** Output correctly formatted path ([#5333](https://github.com/ScoopInstaller/Scoop/issues/5333))
|
||||
- **update/uninstall:** Remove items from PATH correctly ([#5833](https://github.com/ScoopInstaller/Scoop/issues/5833))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
- **scoop-search:** Improve performance for local search ([#5644](https://github.com/ScoopInstaller/Scoop/issues/5644))
|
||||
- **scoop-update:** Check for running process before wasting time on download ([#5799](https://github.com/ScoopInstaller/Scoop/issues/5799))
|
||||
- **decompress:** Disable progress bar to improve `Expand-Archive` performance ([#5410](https://github.com/ScoopInstaller/Scoop/issues/5410))
|
||||
- **shim:** Update kiennq-shim to v3.1.1 ([#5841](https://github.com/ScoopInstaller/Scoop/issues/5841), [#5847](https://github.com/ScoopInstaller/Scoop/issues/5847))
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
- **scoop-download:** Output more detailed manifest information ([#5277](https://github.com/ScoopInstaller/Scoop/issues/5277))
|
||||
- **core:** Cleanup some old codes, e.g., msi section and config migration ([#5715](https://github.com/ScoopInstaller/Scoop/issues/5715), [#5824](https://github.com/ScoopInstaller/Scoop/issues/5824))
|
||||
- **core:** Rewrite and separate path-related functions to `system.ps1` ([#5836](https://github.com/ScoopInstaller/Scoop/issues/5836), [#5858](https://github.com/ScoopInstaller/Scoop/issues/5858), [#5864](https://github.com/ScoopInstaller/Scoop/issues/5864))
|
||||
- **core:** Get rid of 'fullpath' ([#3533](https://github.com/ScoopInstaller/Scoop/issues/3533))
|
||||
- **git:** Use Invoke-Git() with direct path to git.exe to prevent spawning shim subprocesses ([#5122](https://github.com/ScoopInstaller/Scoop/issues/5122), [#5375](https://github.com/ScoopInstaller/Scoop/issues/5375))
|
||||
- **helper:** Remove 7zip's fallback '7zip-zstd' ([#5548](https://github.com/ScoopInstaller/Scoop/issues/5548))
|
||||
- **shim:** Remove CS shim codebase ([#5903](https://github.com/ScoopInstaller/Scoop/issues/5903))
|
||||
|
||||
### Builds
|
||||
|
||||
- **checkver:** Read the private_host config variable ([#5381](https://github.com/ScoopInstaller/Scoop/issues/5381))
|
||||
- **supporting:** Update Json to 13.0.3, Json.Schema to 3.0.15 ([#5835](https://github.com/ScoopInstaller/Scoop/issues/5835))
|
||||
|
||||
### Continuous Integration
|
||||
|
||||
- **dependabot:** Add dependabot.yml for GitHub Actions ([#5377](https://github.com/ScoopInstaller/Scoop/issues/5377))
|
||||
- **module:** Update 'psmodulecache' version to 'main' ([#5828](https://github.com/ScoopInstaller/Scoop/issues/5828))
|
||||
|
||||
### Tests
|
||||
|
||||
- **bucket:** Skip manifest validation if no manifest changes ([#5270](https://github.com/ScoopInstaller/Scoop/issues/5270))
|
||||
|
||||
### Documentation
|
||||
|
||||
- **scoop-info:** Fix help message([#5445](https://github.com/ScoopInstaller/Scoop/issues/5445))
|
||||
- **readme:** Improve documentation language ([#5638](https://github.com/ScoopInstaller/Scoop/issues/5638))
|
||||
|
||||
## [v0.3.1](https://github.com/ScoopInstaller/Scoop/compare/v0.3.0...v0.3.1) - 2022-11-15
|
||||
|
||||
### Features
|
||||
|
||||
- **config:** Allow Scoop to check if apps versioned as 'nightly' are outdated ([#5166](https://github.com/ScoopInstaller/Scoop/issues/5166))
|
||||
- **checkup:** Add Windows Developer Mode check ([#5233](https://github.com/ScoopInstaller/Scoop/issues/5233))
|
||||
- **bucket:** Add 'sysinternals' bucket to known ([#5237](https://github.com/ScoopInstaller/Scoop/issues/5237))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **decompress:** Use PS's default 'Expand-Archive()' ([#5185](https://github.com/ScoopInstaller/Scoop/issues/5185))
|
||||
- **hash:** Fix SourceForge's hash extraction ([#5189](https://github.com/ScoopInstaller/Scoop/issues/5189))
|
||||
- **decompress:** Trim ending '/' ([#5195](https://github.com/ScoopInstaller/Scoop/issues/5195))
|
||||
- **shim:** Exit if shim creating failed 'cause no git ([#5225](https://github.com/ScoopInstaller/Scoop/issues/5225))
|
||||
- **scoop-import:** Add correct architecture argument ([#5210](https://github.com/ScoopInstaller/Scoop/issues/5210))
|
||||
- **scoop-config:** Output `[DateTime]` as `[String]` ([#5232](https://github.com/ScoopInstaller/Scoop/issues/5232))
|
||||
- **shim:** fixed shim add bug related to Resolve-Path ([#5492](https://github.com/ScoopInstaller/Scoop/issues/5492))
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
- **hash:** Use `Get-FileHash()` directly ([#5177](https://github.com/ScoopInstaller/Scoop/issues/5177))
|
||||
- **installer:** Drop the old installer ([#5186](https://github.com/ScoopInstaller/Scoop/issues/5186))
|
||||
- **unix:** Remove `unix.ps1` ([#5235](https://github.com/ScoopInstaller/Scoop/issues/5235))
|
||||
|
||||
### Builds
|
||||
|
||||
- **auto-pr:** Add `CommitMessageFormat` option ([#5171](https://github.com/ScoopInstaller/Scoop/issues/5171))
|
||||
- **checkver:** Support XML default namespace ([#5191](https://github.com/ScoopInstaller/Scoop/issues/5191))
|
||||
- **pssa:** Remove unused 'ExcludeRules' ([#5201](https://github.com/ScoopInstaller/Scoop/issues/5201))
|
||||
- **schema:** Add 'installer' and 'shortcuts' to 'autoupdate' ([#5220](https://github.com/ScoopInstaller/Scoop/issues/5220))
|
||||
- **checkhashes:** Use correct version number if `UseCache` ([#5240](https://github.com/ScoopInstaller/Scoop/issues/5240))
|
||||
|
||||
### Continuous Integration
|
||||
|
||||
- **module:** Update modules version ([#5209](https://github.com/ScoopInstaller/Scoop/issues/5209))
|
||||
|
||||
### Tests
|
||||
|
||||
- **unix:** Fix tests in Linux and macOS ([#5179](https://github.com/ScoopInstaller/Scoop/issues/5179))
|
||||
- **pester:** Update to Pester 5 ([#5222](https://github.com/ScoopInstaller/Scoop/issues/5222))
|
||||
- **bucket:** Use BuildHelpers' EnvVars ([#5226](https://github.com/ScoopInstaller/Scoop/issues/5226))
|
||||
|
||||
### Documentation
|
||||
|
||||
- **scoop-cat:** Fix help message([#5224](https://github.com/ScoopInstaller/Scoop/issues/5224))
|
||||
|
||||
## [v0.3.0](https://github.com/ScoopInstaller/Scoop/compare/v0.2.4...v0.3.0) - 2022-10-10
|
||||
|
||||
### Features
|
||||
|
||||
- **install:** Add support for ARM64 architecture ([#5154](https://github.com/ScoopInstaller/Scoop/issues/5154))
|
||||
- **install:** Show the running process ([#5102](https://github.com/ScoopInstaller/Scoop/issues/5102))
|
||||
- **getopt:** Support option terminator (`--`) ([#5121](https://github.com/ScoopInstaller/Scoop/issues/5121))
|
||||
- **subdir:** Allow subdir in 'bucket' ([#5119](https://github.com/ScoopInstaller/Scoop/issues/5119))
|
||||
- **scoop-config:** Allow 'hold_update_until' be set manually ([#5100](https://github.com/ScoopInstaller/Scoop/issues/5100))
|
||||
- **scoop-(un)hold:** Support `scoop (un)hold scoop` ([#5089](https://github.com/ScoopInstaller/Scoop/issues/5089))
|
||||
- **scoop-update:** Stash uncommitted changes before update ([#5091](https://github.com/ScoopInstaller/Scoop/issues/5091))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **config:** Change config option to snake_case in file and SCREAMING_CASE in code ([#5116](https://github.com/ScoopInstaller/Scoop/issues/5116))
|
||||
- **jsonpath:** Prevent converting date string to DateTime in JSONPath ([#5130](https://github.com/ScoopInstaller/Scoop/issues/5130))
|
||||
- **psmodule:** Remove folder recursively when unlinking previous module path ([#5127](https://github.com/ScoopInstaller/Scoop/issues/5127))
|
||||
- **scoop-update:** Add `uninstall_psmodule` to update process ([#5136](https://github.com/ScoopInstaller/Scoop/issues/5136))
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
- **download:** Rename `dl()` to `Invoke-Download()` ([#5143](https://github.com/ScoopInstaller/Scoop/issues/5143))
|
||||
- **path:** Use 'Convert-Path()' instead of 'Resolve-Path()' ([#5109](https://github.com/ScoopInstaller/Scoop/issues/5109))
|
||||
- **scoop-shim:** Use `getopt` to parse arguments ([#5125](https://github.com/ScoopInstaller/Scoop/issues/5125))
|
||||
|
||||
### Builds
|
||||
|
||||
- **checkver:** Implement SourceForge checkver functionality ([#5113](https://github.com/ScoopInstaller/Scoop/issues/5113), [#5163](https://github.com/ScoopInstaller/Scoop/issues/5163))
|
||||
- **checkurls:** Allow checking URLs from private_hosts ([#5152](https://github.com/ScoopInstaller/Scoop/issues/5152))
|
||||
- **schema:** Set manifest schema to be stricter ([#5093](https://github.com/ScoopInstaller/Scoop/issues/5093))
|
||||
- **vscode:** Tweak VSCode setting ([#5149](https://github.com/ScoopInstaller/Scoop/issues/5149))
|
||||
|
||||
## [v0.2.4](https://github.com/ScoopInstaller/Scoop/compare/v0.2.3...v0.2.4) - 2022-08-08
|
||||
|
||||
### Features
|
||||
|
||||
- **core:** Create no window by default in `Invoke-ExternalCommand` ([#5066](https://github.com/ScoopInstaller/Scoop/issues/5066))
|
||||
- **core:** Improve argument concatenation in `Invoke-ExternalCommand` ([#5065](https://github.com/ScoopInstaller/Scoop/issues/5065))
|
||||
- **install:** Show bucket name while installing an app ([#5075](https://github.com/ScoopInstaller/Scoop/issues/5075))
|
||||
- **scoop-status:** Add flag to disable remote checking ([#5073](https://github.com/ScoopInstaller/Scoop/issues/5073))
|
||||
- **scoop-update:** Add support for `pre_uninstall` and `post_uninstall` ([#5085](https://github.com/ScoopInstaller/Scoop/issues/5085))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **core:** Avoid deadlock in `Invoke-ExternalCommand` ([#5064](https://github.com/ScoopInstaller/Scoop/issues/5064))
|
||||
- **core:** Use 'System.Nullable<bool>' for param 'global' ([#5088](https://github.com/ScoopInstaller/Scoop/issues/5088))
|
||||
- **install:** Move from cache when `--no-cache` is specified ([#5039](https://github.com/ScoopInstaller/Scoop/issues/5039))
|
||||
- **scoop-status:** Correct formatting of `Info` output ([#5047](https://github.com/ScoopInstaller/Scoop/issues/5047))
|
||||
|
||||
### Builds
|
||||
|
||||
- **checkver:** Load page content before running 'script' ([#5080](https://github.com/ScoopInstaller/Scoop/issues/5080))
|
||||
- **json:** Update Newtonsoft.Json.Schema to 3.0.15-beta2 ([#5053](https://github.com/ScoopInstaller/Scoop/issues/5053))
|
||||
|
||||
## [v0.2.3](https://github.com/ScoopInstaller/Scoop/compare/v0.2.2...v0.2.3) - 2022-07-07
|
||||
|
||||
### Features
|
||||
|
||||
- **chore:** Add missing -a/--all param to all commands ([#5004](https://github.com/ScoopInstaller/Scoop/issues/5004))
|
||||
- **scoop-status:** Check bucket status, improve output ([#5011](https://github.com/ScoopInstaller/Scoop/issues/5011))
|
||||
- **scoop-info:** Show app installed/download size ([#4886](https://github.com/ScoopInstaller/Scoop/issues/4886))
|
||||
- **scoop-import:** Import a Scoop installation from JSON ([#5014](https://github.com/ScoopInstaller/Scoop/issues/5014), [#5034](https://github.com/ScoopInstaller/Scoop/issues/5034))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **chore:** Update help documentation ([#5002](https://github.com/ScoopInstaller/Scoop/issues/5002), [#5029](https://github.com/ScoopInstaller/Scoop/issues/5029))
|
||||
- **decompress:** Handle split RAR archives ([#4994](https://github.com/ScoopInstaller/Scoop/issues/4994))
|
||||
- **shortcuts:** Fix network drive shortcut creation ([#4410](https://github.com/ScoopInstaller/Scoop/issues/4410), [#5006](https://github.com/ScoopInstaller/Scoop/issues/5006))
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
- **scoop-search:** Output PSObject, use API token ([#4997](https://github.com/ScoopInstaller/Scoop/issues/4997))
|
||||
|
||||
### Builds
|
||||
|
||||
- **checkver,auto-pr:** Allow passing file path ([#5019](https://github.com/ScoopInstaller/Scoop/issues/5019))
|
||||
- **checkver:** Exit routine earlier if error ([#5025](https://github.com/ScoopInstaller/Scoop/issues/5025))
|
||||
- **json:** Update Newton.Json to 13.0.1 ([#5026](https://github.com/ScoopInstaller/Scoop/issues/5026))
|
||||
|
||||
### Tests
|
||||
|
||||
- **typo:** Fix typo ('formated' -> 'formatted') ([#4217](https://github.com/ScoopInstaller/Scoop/issues/4217))
|
||||
|
||||
## [v0.2.2](https://github.com/ScoopInstaller/Scoop/compare/v0.2.1...v0.2.2) - 2022-06-21
|
||||
|
||||
### Features
|
||||
|
||||
- **core:** Add `Get-Encoding` function to fix missing webclient encoding ([#4956](https://github.com/ScoopInstaller/Scoop/issues/4956))
|
||||
- **scoop-(un)hold:** Add `-g`/`--global` flag ([#4991](https://github.com/ScoopInstaller/Scoop/issues/4991))
|
||||
- **scoop-update:** Support `scoop update scoop` ([#4992](https://github.com/ScoopInstaller/Scoop/issues/4992))
|
||||
- **scoop-virustotal:** Migrate to VirusTotal API v3 ([#4983](https://github.com/ScoopInstaller/Scoop/issues/4983))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **manifest:** Fix bugs in 'Get-Manifest()' ([#4986](https://github.com/ScoopInstaller/Scoop/issues/4986))
|
||||
|
||||
## [v0.2.1](https://github.com/ScoopInstaller/Scoop/compare/v0.2.0...v0.2.1) - 2022-06-10
|
||||
|
||||
### Features
|
||||
|
||||
- **core:** Add pre_uninstall and post_uninstall hooks ([#4957](https://github.com/ScoopInstaller/Scoop/issues/4957), [#4962](https://github.com/ScoopInstaller/Scoop/issues/4962))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **bucket:** Make sure `list_buckets` return array ([#4979](https://github.com/ScoopInstaller/Scoop/issues/4979))
|
||||
- **chore:** Deprecate tls1 and tls1.1 ([#4950](https://github.com/ScoopInstaller/Scoop/issues/4950))
|
||||
- **chore:** Update Nonportable bucket URL ([#4955](https://github.com/ScoopInstaller/Scoop/issues/4955))
|
||||
- **core:** Using `Invoke-Command` instead of `Invoke-Expression` ([#4941](https://github.com/ScoopInstaller/Scoop/issues/4941))
|
||||
- **core:** Load config file before initialization ([#4932](https://github.com/ScoopInstaller/Scoop/issues/4932))
|
||||
- **core:** Allow to use '_' and '.' in bucket name ([#4952](https://github.com/ScoopInstaller/Scoop/issues/4952))
|
||||
- **depends:** Avoid digits in archive file extension (except for .7z and .001) ([#4915](https://github.com/ScoopInstaller/Scoop/issues/4915))
|
||||
- **bucket:** Don't check remote URL of non-git buckets ([#4923](https://github.com/ScoopInstaller/Scoop/issues/4923))
|
||||
- **bucket:** Don't write message OK before bucket is cloned ([#4925](https://github.com/ScoopInstaller/Scoop/issues/4925))
|
||||
- **shim:** Add 'Get-CommandPath()' to find git ([#4913](https://github.com/ScoopInstaller/Scoop/issues/4913))
|
||||
- **shim:** Remove character replacement in .cmd -> .ps1 shims ([#4914](https://github.com/ScoopInstaller/Scoop/issues/4914))
|
||||
- **scoop:** Pass CLI arguments as string objects ([#4931](https://github.com/ScoopInstaller/Scoop/issues/4931))
|
||||
- **scoop-info:** Fix error message when manifest is not found ([#4935](https://github.com/ScoopInstaller/Scoop/issues/4935))
|
||||
- **scoop-search:** Require files in 'bucket' dir for remote known buckets ([#4944](https://github.com/ScoopInstaller/Scoop/issues/4944))
|
||||
- **update:** Prevent uninstall when update ([#4949](https://github.com/ScoopInstaller/Scoop/issues/4949))
|
||||
- **scoop-download:** Use correct Args when calling `Get-Manifest` ([#4970](https://github.com/ScoopInstaller/Scoop/issues/4970))
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
- **manifest:** Rename 'Find-Manifest()' to 'Get-Manifest() ([#4966](https://github.com/ScoopInstaller/Scoop/issues/4966), [#4981](https://github.com/ScoopInstaller/Scoop/issues/4981))
|
||||
|
||||
### Documentation
|
||||
|
||||
- **readme:** Update license badge ([#4929](https://github.com/ScoopInstaller/Scoop/issues/4929))
|
||||
|
||||
## [v0.2.0](https://github.com/ScoopInstaller/Scoop/compare/v0.1.0...v0.2.0) - 2022-05-10
|
||||
|
||||
### Features
|
||||
|
||||
- **relicense:** Relicense to dual-license (Unlicense or MIT) ([#4903](https://github.com/ScoopInstaller/Scoop/issues/4903), [#4870](https://github.com/ScoopInstaller/Scoop/issues/4870))
|
||||
- **install:** Allow downloading from private repositories ([#4254](https://github.com/ScoopInstaller/Scoop/issues/4254))
|
||||
- **scoop-cleanup:** Add `-a/--all` switch to cleanup all apps ([#4906](https://github.com/ScoopInstaller/Scoop/issues/4906))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **bucket:** Return empty list correctly in `Get-LocalBucket` ([#4885](https://github.com/ScoopInstaller/Scoop/issues/4885))
|
||||
- **install:** Fix issue with installation inside containers ([#4837](https://github.com/ScoopInstaller/Scoop/issues/4837))
|
||||
- **installed:** If no `$global`, check both local and global installed ([#4798](https://github.com/ScoopInstaller/Scoop/issues/4798))
|
||||
- **shim:** Manipulating shims with UTF8 encoding ([#4791](https://github.com/ScoopInstaller/Scoop/issues/4791), [#4813](https://github.com/ScoopInstaller/Scoop/issues/4813))
|
||||
- **shim:** Correctly quote $@ in sh->ps1 shims ([#4809](https://github.com/ScoopInstaller/Scoop/issues/4809))
|
||||
- **update:** Skip logs starting with `(chore)` ([#4800](https://github.com/ScoopInstaller/Scoop/issues/4800))
|
||||
- **scoop-download:** Add failure check ([#4822](https://github.com/ScoopInstaller/Scoop/issues/4822))
|
||||
- **scoop-list:** Fix date in 'Updated' column showing the months in the place of minutes ([#4880](https://github.com/ScoopInstaller/Scoop/issues/4880))
|
||||
- **scoop-prefix:** Fix typo that breaks global installed apps ([#4795](https://github.com/ScoopInstaller/Scoop/issues/4795))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
- **scoop:** Load libs only once ([#4839](https://github.com/ScoopInstaller/Scoop/issues/4839), [#4884](https://github.com/ScoopInstaller/Scoop/issues/4884))
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
- **bucket:** Move 'Find-Manifest' and 'list_buckets' to 'buckets' ([#4814](https://github.com/ScoopInstaller/Scoop/issues/4814))
|
||||
- **relpath:** Use `$PSScriptRoot` instead of `relpath` ([#4793](https://github.com/ScoopInstaller/Scoop/issues/4793))
|
||||
- **reset_aliases:** Move core function of `reset_aliases` to `scoop` ([#4794](https://github.com/ScoopInstaller/Scoop/issues/4794))
|
||||
- **config:** Rename checkver_token to gh_token and SCOOP_CHECKVER_TOKEN to SCOOP_GH_TOKEN ([#4832](https://github.com/ScoopInstaller/Scoop/issues/4832), [#4842](https://github.com/ScoopInstaller/Scoop/issues/4842))
|
||||
|
||||
### Builds
|
||||
|
||||
- **checkver:** Add option to throw error as exception ([#4867](https://github.com/ScoopInstaller/Scoop/issues/4867))
|
||||
- **schema:** Remove 'description' from required fields ([#4853](https://github.com/ScoopInstaller/Scoop/issues/4853), [#4874](https://github.com/ScoopInstaller/Scoop/issues/4874))
|
||||
|
||||
### Documentation
|
||||
|
||||
- **changelog:** Rearrange CHANGELOG ([#4897](https://github.com/ScoopInstaller/Scoop/issues/4897))
|
||||
- **readme:** Update installation instruction ([#4825](https://github.com/ScoopInstaller/Scoop/issues/4825))
|
||||
- **readme:** Fix badges for Gitter and CI Tests ([#4830](https://github.com/ScoopInstaller/Scoop/issues/4830))
|
||||
- **scoop-shim:** Fix typo ([#4836](https://github.com/ScoopInstaller/Scoop/issues/4836))
|
||||
|
||||
## [v0.1.0](https://github.com/ScoopInstaller/Scoop/compare/2021-12-26...v0.1.0) - 2022-03-01
|
||||
|
||||
### Features
|
||||
|
||||
- **scoop-bucket:** List more detailed information for buckets ([#4704](https://github.com/ScoopInstaller/Scoop/issues/4704), [#4756](https://github.com/ScoopInstaller/Scoop/issues/4756), [#4759](https://github.com/ScoopInstaller/Scoop/issues/4759))
|
||||
- **scoop-cache:** Handle multiple apps and show detailed information ([#4738](https://github.com/ScoopInstaller/Scoop/issues/4738))
|
||||
- **scoop-cat:** Use `bat` to pretty-print JSON ([#4742](https://github.com/ScoopInstaller/Scoop/issues/4742))
|
||||
- **scoop-config:** Allow Scoop to ignore running processes during reset/uninstall/update ([#4713](https://github.com/ScoopInstaller/Scoop/issues/4713), [#4731](https://github.com/ScoopInstaller/Scoop/issues/4731))
|
||||
- **scoop-config:** Show all settings ([#4765](https://github.com/ScoopInstaller/Scoop/issues/4765))
|
||||
- **scoop-download:** Add `scoop download` command ([#4621](https://github.com/ScoopInstaller/Scoop/issues/4621))
|
||||
- **scoop-(install|virustotal):** Allow skipping update check ([#4634](https://github.com/ScoopInstaller/Scoop/issues/4634))
|
||||
- **scoop-list:** Allow list manipulation ([#4718](https://github.com/ScoopInstaller/Scoop/issues/4718))
|
||||
- **scoop-list:** Show last-updated time ([#4723](https://github.com/ScoopInstaller/Scoop/issues/4723))
|
||||
- **scoop-info:** Revamp details and show more information ([#4747](https://github.com/ScoopInstaller/Scoop/issues/4747))
|
||||
- **scoop-shim:** Add `scoop shim` to manipulate shims ([#4727](https://github.com/ScoopInstaller/Scoop/issues/4727), [#4736](https://github.com/ScoopInstaller/Scoop/issues/4736))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **autoupdate:** Allow checksum file that contains whitespaces ([#4619](https://github.com/ScoopInstaller/Scoop/issues/4619))
|
||||
- **autoupdate:** Rename $response to $res ([#4706](https://github.com/ScoopInstaller/Scoop/issues/4706))
|
||||
- **config:** Ensure manipulating config with UTF8 encoding ([#4644](https://github.com/ScoopInstaller/Scoop/issues/4644))
|
||||
- **config:** Allow scoop config use Unicode characters ([#4631](https://github.com/ScoopInstaller/Scoop/issues/4631))
|
||||
- **config:** Fix `set_config` bugs ([#3681](https://github.com/ScoopInstaller/Scoop/issues/3681))
|
||||
- **current:** Remove 'current' while it's not a junction ([#4687](https://github.com/ScoopInstaller/Scoop/issues/4687))
|
||||
- **depends:** Prevent error on no URL ([#4595](https://github.com/ScoopInstaller/Scoop/issues/4595))
|
||||
- **depends:** Check if extractor is available ([#4042](https://github.com/ScoopInstaller/Scoop/issues/4042))
|
||||
- **decompress:** Fix nested Zstd archive extraction ([#4608](https://github.com/ScoopInstaller/Scoop/issues/4608), [#4639](https://github.com/ScoopInstaller/Scoop/issues/4639))
|
||||
- **installed:** Fix 'core/installed' that mark failed app as 'installed' ([#4650](https://github.com/ScoopInstaller/Scoop/issues/4650), [#4676](https://github.com/ScoopInstaller/Scoop/issues/4676), [#4689](https://github.com/ScoopInstaller/Scoop/issues/4689), [#4785](https://github.com/ScoopInstaller/Scoop/issues/4785))
|
||||
- **no-junctions:** Fix error when `NO_JUNCTIONS` is been set ([#4722](https://github.com/ScoopInstaller/Scoop/issues/4722), [#4726](https://github.com/ScoopInstaller/Scoop/issues/4726))
|
||||
- **shim:** Fix PS1 shim error when in different drive in PS7 ([#4614](https://github.com/ScoopInstaller/Scoop/issues/4614))
|
||||
- **shim:** Fix `sh` shim error in WSL ([#4637](https://github.com/ScoopInstaller/Scoop/issues/4637))
|
||||
- **shim:** Use `-file` instead of `-command` in ps1 script shims ([#4721](https://github.com/ScoopInstaller/Scoop/issues/4721))
|
||||
- **shim:** Fix exe shim when app path has white spaces ([#4734](https://github.com/ScoopInstaller/Scoop/issues/4734), [#4780](https://github.com/ScoopInstaller/Scoop/issues/4780))
|
||||
- **versions:** Fix wrong version number when only one version dir ([#4679](https://github.com/ScoopInstaller/Scoop/issues/4679))
|
||||
- **versions:** Get current version from failed installation if possible ([#4720](https://github.com/ScoopInstaller/Scoop/issues/4720), [#4725](https://github.com/ScoopInstaller/Scoop/issues/4725))
|
||||
- **scoop-alias:** Fix alias initialization ([#4737](https://github.com/ScoopInstaller/Scoop/issues/4737))
|
||||
- **scoop-checkup:** Skip 'check_windows_defender' when have not admin privileges ([#4699](https://github.com/ScoopInstaller/Scoop/issues/4699))
|
||||
- **scoop-cleanup:** Remove apps other than current version ([#4665](https://github.com/ScoopInstaller/Scoop/issues/4665))
|
||||
- **scoop-search:** Remove redundant 'bucket/' in search result ([#4773](https://github.com/ScoopInstaller/Scoop/issues/4773))
|
||||
- **scoop-update:** Skip updating non git buckets ([#4670](https://github.com/ScoopInstaller/Scoop/issues/4670), [#4672](https://github.com/ScoopInstaller/Scoop/issues/4672))
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
- **uninstall:** Avoid checking all files for unlinking persisted data ([#4681](https://github.com/ScoopInstaller/Scoop/issues/4681), [#4763](https://github.com/ScoopInstaller/Scoop/issues/4763))
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
- **depends:** Rewrite 'depends.ps1' ([#4638](https://github.com/ScoopInstaller/Scoop/issues/4638), [#4673](https://github.com/ScoopInstaller/Scoop/issues/4673))
|
||||
- **mklink:** Use 'New-Item' instead of 'mklink' ([#4690](https://github.com/ScoopInstaller/Scoop/issues/4690))
|
||||
- **rmdir:** Use 'Remove-Item' instead of 'rmdir' ([#4691](https://github.com/ScoopInstaller/Scoop/issues/4691))
|
||||
- **COMSPEC:** Deprecate use of subshell cmd.exe ([#4692](https://github.com/ScoopInstaller/Scoop/issues/4692))
|
||||
- **git:** Use 'git -C' to specify the work directory instead of 'Push-Location'/'Pop-Location' ([#4697](https://github.com/ScoopInstaller/Scoop/issues/4697))
|
||||
- **scoop-info:** Use List View for output ([#4741](https://github.com/ScoopInstaller/Scoop/issues/4741))
|
||||
- **scoop-config:** Use underscores everywhere ([#4745](https://github.com/ScoopInstaller/Scoop/issues/4745))
|
||||
|
||||
### Builds
|
||||
|
||||
- **checkver:** Fix output with '-Version' ([#3774](https://github.com/ScoopInstaller/Scoop/issues/3774))
|
||||
- **schema:** Add '$schema' property ([#4623](https://github.com/ScoopInstaller/Scoop/issues/4623))
|
||||
- **schema:** Add explicit escape to opening bracket matcher in jp/jsonpath regex ([#3719](https://github.com/ScoopInstaller/Scoop/issues/3719))
|
||||
- **schema:** Fix typo ('note' -> 'notes') ([#4678](https://github.com/ScoopInstaller/Scoop/issues/4678))
|
||||
- **tests:** Support both AppVeyor and GitHub Actions ([#4655](https://github.com/ScoopInstaller/Scoop/issues/4655))
|
||||
- **tests:** Run GitHub Actions CI on each commit ([#4664](https://github.com/ScoopInstaller/Scoop/issues/4664))
|
||||
- **tests:** Use cache in GitHub Actions ([#4671](https://github.com/ScoopInstaller/Scoop/issues/4671))
|
||||
- **tests:** Disable CI test on 'push' ([#4677](https://github.com/ScoopInstaller/Scoop/issues/4677))
|
||||
- **vscode-settings:** Remove 'formatOnSave' trigger ([#4635](https://github.com/ScoopInstaller/Scoop/issues/4635))
|
||||
|
||||
### Styles
|
||||
|
||||
- **test:** Format scripts by VSCode's PowerShell extension ([#4609](https://github.com/ScoopInstaller/Scoop/issues/4609))
|
||||
- **style:** Use correct casing for `$PSScriptRoot` ([#4775](https://github.com/ScoopInstaller/Scoop/issues/4775))
|
||||
|
||||
### Tests
|
||||
|
||||
- **test-bin:** Only write output file in CI and fix trailing whitespaces ([#4613](https://github.com/ScoopInstaller/Scoop/issues/4613))
|
||||
- **manifest:** Fix manifests validation ([#4620](https://github.com/ScoopInstaller/Scoop/issues/4620))
|
||||
- **zstd:** Fix 'zstd' extraction error in test ([#4651](https://github.com/ScoopInstaller/Scoop/issues/4651))
|
||||
|
||||
### Documentation
|
||||
|
||||
- **changelog:** Add 'CHANGLOG.md' ([#4600](https://github.com/ScoopInstaller/Scoop/issues/4600))
|
||||
- **changelog:** Rearrange CHANGELOG ([#4729](https://github.com/ScoopInstaller/Scoop/issues/4729))
|
||||
- **changelog:** Link CHANGELOG headers to 'releases/tag' ([#4730](https://github.com/ScoopInstaller/Scoop/issues/4730))
|
||||
|
||||
## [2021-12-26](https://github.com/ScoopInstaller/Scoop/compare/2021-11-22...2021-12-26)
|
||||
|
||||
### Features
|
||||
|
||||
- **core:** Redirect 'StandardError' in `Invoke-ExternalCommand()` ([#4570](https://github.com/ScoopInstaller/Scoop/issues/4570), [#4582](https://github.com/ScoopInstaller/Scoop/issues/4582))
|
||||
- **install:** Add portableapps.com to strip_filename skips ([#3244](https://github.com/ScoopInstaller/Scoop/issues/3244))
|
||||
- **install:** Show manifest on installation ([#4155](https://github.com/ScoopInstaller/Scoop/issues/4155), [fb496c48](https://github.com/ScoopInstaller/Scoop/commit/fb496c482bec4063e01b328f943224ab703dbbd8), [#4581](https://github.com/ScoopInstaller/Scoop/issues/4581))
|
||||
- **template:** Add issue/PR templates ([#4572](https://github.com/ScoopInstaller/Scoop/issues/4572))
|
||||
- **scoop-cat:** Add `scoop cat` command ([#4532](https://github.com/ScoopInstaller/Scoop/issues/4532))
|
||||
- **scoop-config:** Document all configuration options ([#4579](https://github.com/ScoopInstaller/Scoop/issues/4579))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **bucket:** Remove JetBrains bucket ([dec25980](https://github.com/ScoopInstaller/Scoop/commit/dec25980525a81c176b3fd5f238e964db00f3be3))
|
||||
- **bucket:** Remove nightlies bucket ([48b035d7](https://github.com/ScoopInstaller/Scoop/commit/48b035d7f99baa2e81d87ead4ff03a9594e49c3d))
|
||||
- **core:** Escape '.' in 'parse_app()'. ([#4578](https://github.com/ScoopInstaller/Scoop/issues/4578))
|
||||
- **core:** Use '-Encoding ASCII' in 'Out-File' ([#4571](https://github.com/ScoopInstaller/Scoop/issues/4571))
|
||||
- **depends:** Specify function scope ([4d5fee36](https://github.com/ScoopInstaller/Scoop/commit/4d5fee36e1ed13fc850fd22a5414186aec030c6e))
|
||||
- **install:** Use `Select-CurrentVersion` ([#4535](https://github.com/ScoopInstaller/Scoop/issues/4535))
|
||||
- **install:** 'env_add_path' doesn't append '.' ([#4550](https://github.com/ScoopInstaller/Scoop/issues/4550))
|
||||
- **repo:** Update repo links ([cbe29edd](https://github.com/ScoopInstaller/Scoop/commit/cbe29eddb3475e34740300eb1c2c52715446e3be))
|
||||
- **scoop-update:** Update apps with '--all' ([ac71fccb](https://github.com/ScoopInstaller/Scoop/commit/ac71fccbecb3d4158f249db9c1b9bb043cb8e966))
|
||||
- **scoop-update:** Fix scoop update -a requiring arguments ([#4531](https://github.com/ScoopInstaller/Scoop/issues/4531))
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
- **shim:** Rework shimming logic ([#4543](https://github.com/ScoopInstaller/Scoop/issues/4543), [#4555](https://github.com/ScoopInstaller/Scoop/issues/4555), [3c90d1a0](https://github.com/ScoopInstaller/Scoop/commit/3c90d1a0701b0b64730dbf9ebc8d31f9b9c238f1), [2ec00d57](https://github.com/ScoopInstaller/Scoop/commit/2ec00d576c7e594dc5c0f1eac4536c5310ce6f17))
|
||||
|
||||
### Builds
|
||||
|
||||
- **auto-pr:** Remove hardcoded 'master' branch ([#4567](https://github.com/ScoopInstaller/Scoop/issues/4567))
|
||||
- **checkver:** Improve JSONPath extraction support ([#4522](https://github.com/ScoopInstaller/Scoop/issues/4522))
|
||||
- **checkver:** Use GitHub token from environment ([#4557](https://github.com/ScoopInstaller/Scoop/issues/4557))
|
||||
- **schema:** Enable autoupdate for 'license' ([#4528](https://github.com/ScoopInstaller/Scoop/issues/4528), [#4596](https://github.com/ScoopInstaller/Scoop/issues/4596))
|
||||
|
||||
### Documentation
|
||||
|
||||
- **readme:** Add link to Contributing Guide ([5e11c94a](https://github.com/ScoopInstaller/Scoop/commit/5e11c94a544ff2adbdbec5072c32a94d3e5acb9c))
|
||||
- **readme:** Fix links ([3bb7036e](https://github.com/ScoopInstaller/Scoop/commit/3bb7036ee111bfe58e82ba3d0fd39189b058776a))
|
||||
|
||||
### Reverts
|
||||
|
||||
- **shim:** Revert [#4229](https://github.com/ScoopInstaller/Scoop/issues/4229) ([#4553](https://github.com/ScoopInstaller/Scoop/issues/4553))
|
||||
|
||||
## [2021-11-22](https://github.com/ScoopInstaller/Scoop/compare/2020-11-26...2021-11-22)
|
||||
|
||||
### Features
|
||||
|
||||
- **bucket:** Move extras bucket to [@ScoopInstaller](https://github.com/ScoopInstaller) ([3e9a4d4e](https://github.com/ScoopInstaller/Scoop/commit/3e9a4d4ea0e7e4d6489099c46a763f58db07e633))
|
||||
- **decompress:** Support Zstandard archive ([#4372](https://github.com/ScoopInstaller/Scoop/issues/4372), [e35ff313](https://github.com/ScoopInstaller/Scoop/commit/e35ff313a5d35cab1049024938c3423a5f6bf060), [47ebc6f1](https://github.com/ScoopInstaller/Scoop/commit/47ebc6f176b0db0afeb51b4ee237a20b2d8649e9))
|
||||
- **install:** Handle arch-specific env_add_path ([#4013](https://github.com/ScoopInstaller/Scoop/issues/4013))
|
||||
- **install:** s/lukesamson/ScoopInstaller in install.ps1 ([5226f26f](https://github.com/ScoopInstaller/Scoop/commit/5226f26f18157ed78f1529144404ec682374452e))
|
||||
- **message:** Add config to disable aria2 warning message ([#4422](https://github.com/ScoopInstaller/Scoop/issues/4422))
|
||||
- **shim:** Add another alternative shim written in rust ([#4229](https://github.com/ScoopInstaller/Scoop/issues/4229))
|
||||
- **scoop-prefix:** Remove unused imports and functions ([#4494](https://github.com/ScoopInstaller/Scoop/issues/4494))
|
||||
- **scoop-install:** Auto uninstall previous failed installation ([#3281](https://github.com/ScoopInstaller/Scoop/issues/3281))
|
||||
- **scoop-update:** Add flags `--all` as an alternative to '*' to update all ([#3871](https://github.com/ScoopInstaller/Scoop/issues/3871))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **core:** Change url() scope to avoid conflict with global aliases ([#4342](https://github.com/ScoopInstaller/Scoop/issues/4342), [#4492](https://github.com/ScoopInstaller/Scoop/issues/4492))
|
||||
- **install:** Fix `aria2`'s resume download feature ([#3292](https://github.com/ScoopInstaller/Scoop/issues/3292))
|
||||
- **shim:** Fixed trailing whitespace issue ([#4307](https://github.com/ScoopInstaller/Scoop/issues/4307))
|
||||
- **scoop-reset:** Skip when app instance is running ([#4359](https://github.com/ScoopInstaller/Scoop/issues/4359))
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
- **versions:** Refactor 'versions.ps1' ([#3721](https://github.com/ScoopInstaller/Scoop/issues/3721), [e6630272](https://github.com/ScoopInstaller/Scoop/commit/e663027299d03ca768a252fa4bcbc51d124d4cae), [ae892138](https://github.com/ScoopInstaller/Scoop/commit/ae892138423bb9bbf54c8f0bed8331b93199f6b8))
|
||||
|
||||
### Builds
|
||||
|
||||
- **autoupdate:** Add multiple URL/hash/extract_dir... support ([#3518](https://github.com/ScoopInstaller/Scoop/issues/3518), [#4502](https://github.com/ScoopInstaller/Scoop/issues/4502))
|
||||
- **schema:** Fix Schema to support `+` in version ([#4504](https://github.com/ScoopInstaller/Scoop/issues/4504))
|
||||
- **supporting:** Update Json to 12.0.3, Json.Schema to 3.0.14 ([#3352](https://github.com/ScoopInstaller/Scoop/issues/3352))
|
||||
|
||||
### Documentation
|
||||
|
||||
- **readme:** Capitalize to prevent redirect ([#4483](https://github.com/ScoopInstaller/Scoop/issues/4483))
|
||||
- **readme:** s/lukesampson/ScoopInstaller in readme ([4f5acd72](https://github.com/ScoopInstaller/Scoop/commit/4f5acd72109a98a148d1bfa269c23a2d43644d23))
|
||||
- **readme:** Update extras bucket url in readme ([f1a46e10](https://github.com/ScoopInstaller/Scoop/commit/f1a46e109596c55c7e83c77fc1fc9daedbe71636))
|
||||
- **readme:** Update Java bucket text ([#4514](https://github.com/ScoopInstaller/Scoop/issues/4514))
|
||||
- **readme:** Update notes about the NirSoft bucket ([#4524](https://github.com/ScoopInstaller/Scoop/issues/4524))
|
||||
|
||||
## [2020-11-26](https://github.com/ScoopInstaller/Scoop/compare/2020-10-22...2020-11-26)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **shim:** Fix Makefile typo ([0948824e](https://github.com/ScoopInstaller/Scoop/commit/0948824ec7269c979882d09342d9a269193cd674)) ([227de6cf](https://github.com/ScoopInstaller/Scoop/commit/227de6cfb8433a86ac0f0a279e691327ae04554c))
|
||||
|
||||
## [2020-10-22](https://github.com/ScoopInstaller/Scoop/compare/2019-10-23...2020-10-22)
|
||||
|
||||
### Features
|
||||
|
||||
- **aria2:** Inline progress ([#3987](https://github.com/ScoopInstaller/Scoop/issues/3987))
|
||||
- **autoupdate:** Add $urlNoExt and $basenameNoExt substitutions ([#3742](https://github.com/ScoopInstaller/Scoop/issues/3742))
|
||||
- **config:** Add configuration option for default architecture ([#3778](https://github.com/ScoopInstaller/Scoop/issues/3778))
|
||||
- **install:** Follow HTTP redirections when downloading a file ([#3902](https://github.com/ScoopInstaller/Scoop/issues/3902))
|
||||
- **install:** Let pathes in 'env_add_path' be added ascendantly ([#3788](https://github.com/ScoopInstaller/Scoop/issues/3788), [#3976](https://github.com/ScoopInstaller/Scoop/issues/3976))
|
||||
- **list:** Display main bucket name ([#3759](https://github.com/ScoopInstaller/Scoop/issues/3759))
|
||||
- **shim:** Add alt-shim support ([#3998](https://github.com/ScoopInstaller/Scoop/issues/3998))
|
||||
- **scoop-checkup:** Add check_envs_requirements ([#3860](https://github.com/ScoopInstaller/Scoop/issues/3860))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **bucket:** Update scoop-nonportable URL ([#3776](https://github.com/ScoopInstaller/Scoop/issues/3776))
|
||||
- **download:** Fosshub download ([#4051](https://github.com/ScoopInstaller/Scoop/issues/4051))
|
||||
- **download:** Progress bar on small files ([96de9c14](https://github.com/ScoopInstaller/Scoop/commit/96de9c14bb483f9278e4b0a9e22b1923ee752901))
|
||||
- **hold:** Replace "locked" terminology with "held" for consistency ([#3917](https://github.com/ScoopInstaller/Scoop/issues/3917))
|
||||
- **git:** Don't execute autostart programs when executing git commands ([#3993](https://github.com/ScoopInstaller/Scoop/issues/3993))
|
||||
- **git:** Enforce pull without rebase ([#3765](https://github.com/ScoopInstaller/Scoop/issues/3765))
|
||||
- **install:** Aria2 inline progress negative values ([#4053](https://github.com/ScoopInstaller/Scoop/issues/4053))
|
||||
- **install:** Fix wrong output of 'install/failed' ([#3784](https://github.com/ScoopInstaller/Scoop/issues/3784), [#3867](https://github.com/ScoopInstaller/Scoop/issues/3867))
|
||||
- **install:** Re-add "Don't send referer to portableapps.com" ([#3961](https://github.com/ScoopInstaller/Scoop/issues/3961))
|
||||
- **scoop:** Remove temporary code from the scoop executable ([#3898](https://github.com/ScoopInstaller/Scoop/issues/3898))
|
||||
- **update:** Update outdated PowerShell 5 warning ([#3986](https://github.com/ScoopInstaller/Scoop/issues/3986))
|
||||
- **scoop-info:** Check bucket of installed app ([#3740](https://github.com/ScoopInstaller/Scoop/issues/3740))
|
||||
|
||||
### Builds
|
||||
|
||||
- **checkver:** Present script property ([#3900](https://github.com/ScoopInstaller/Scoop/issues/3900))
|
||||
|
||||
### Tests
|
||||
|
||||
- **init:** Force pester v4 ([#4040](https://github.com/ScoopInstaller/Scoop/issues/4040))
|
||||
|
||||
## [2019-10-23](https://github.com/ScoopInstaller/Scoop/compare/2019-10-18...2019-10-23)
|
||||
|
||||
### Features
|
||||
|
||||
- **update:** Support $persist_dir in uninstaller.script ([#3692](https://github.com/ScoopInstaller/Scoop/issues/3692))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **core:** Use [Environment]::Is64BitOperatingSystem instead of [intptr]::size ([#3690](https://github.com/ScoopInstaller/Scoop/issues/3690))
|
||||
- **git:** Remove unnecessary git_proxy_cmd() calls for local commands ([8ee45a57](https://github.com/ScoopInstaller/Scoop/commit/8ee45a57dc01a525dcf8776bf9bb45263992c81f))
|
||||
- **install:** Check execution policy ([#3619](https://github.com/ScoopInstaller/Scoop/issues/3619))
|
||||
- **update:** Fix scoop update changelog output ([e997017f](https://github.com/ScoopInstaller/Scoop/commit/e997017f1a03e2eefef2157acdfefe2e4fced896))
|
||||
|
||||
## [2019-10-18](https://github.com/ScoopInstaller/Scoop/compare/2019-06-24...2019-10-18)
|
||||
|
||||
### Features
|
||||
|
||||
- **core:** Tweak Invoke-ExternalCommand parameters ([#3547](https://github.com/ScoopInstaller/Scoop/issues/3547))
|
||||
- **install:** Use 7zip when available for faster zip file extraction ([#3460](https://github.com/ScoopInstaller/Scoop/issues/3460))
|
||||
- **install:** Add arch support to `env_add_path` and `env_set` ([#3503](https://github.com/ScoopInstaller/Scoop/issues/3503))
|
||||
- **install:** Allow $version to be used in uninstaller scripts ([#3592](https://github.com/ScoopInstaller/Scoop/issues/3592))
|
||||
- **install:** Allow installing specific version if latest is installed ([11c42d78](https://github.com/ScoopInstaller/Scoop/commit/11c42d782f8adb29fbe0d94daa5f121cdda935ab))
|
||||
- **update:** Allow updating apps from local manifest or URL ([#3685](https://github.com/ScoopInstaller/Scoop/issues/3685))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **autoupdate:** Decode basename when extract hash ([#3615](https://github.com/ScoopInstaller/Scoop/issues/3615))
|
||||
- **autoupdate:** Remove any whitespace from hash ([#3579](https://github.com/ScoopInstaller/Scoop/issues/3579))
|
||||
- **bucket:** Only lookup directories in buckets folder ([#3631](https://github.com/ScoopInstaller/Scoop/issues/3631))
|
||||
- **comspec:** Escape variables when calling COMSPEC commands ([#3538](https://github.com/ScoopInstaller/Scoop/issues/3538))
|
||||
- **decompress:** Fix bugs on extract_dir ([#3540](https://github.com/ScoopInstaller/Scoop/issues/3540))
|
||||
- **editorconfig:** Add missing } to bat/cmd regex ([#3529](https://github.com/ScoopInstaller/Scoop/issues/3529))
|
||||
- **help:** Rename help() to scoop_help() ([#3564](https://github.com/ScoopInstaller/Scoop/issues/3564))
|
||||
- **install:** Use Join-Path instead of string gluing. ([#3566](https://github.com/ScoopInstaller/Scoop/issues/3566))
|
||||
- **scoop-info:** Fix output for single binaries with alias ([#3651](https://github.com/ScoopInstaller/Scoop/issues/3651))
|
||||
- **scoop-info:** Remove a whitespace ([#3652](https://github.com/ScoopInstaller/Scoop/issues/3652))
|
||||
|
||||
### Builds
|
||||
|
||||
- **auto-pr:** Fix git status detection ([7decfd4c](https://github.com/ScoopInstaller/Scoop/commit/7decfd4c107b8d8a59d7eedfe8a56e1801120c2f))
|
||||
- **auto-pr:** Hard reset bucket after running ([79f8538b](https://github.com/ScoopInstaller/Scoop/commit/79f8538b57b9021db71a279879b9032fefd1ae52))
|
||||
- **checkurls:** Trim renaming suffix in url ([#3677](https://github.com/ScoopInstaller/Scoop/issues/3677))
|
||||
|
||||
### Continuous Integration
|
||||
|
||||
- **appveyor:** use VS2019 image to fix PS6 issues ([#3646](https://github.com/ScoopInstaller/Scoop/issues/3646))
|
||||
- **tests:** Do not force maintainers to have SCOOP_HELPERS ([#3604](https://github.com/ScoopInstaller/Scoop/issues/3604))
|
||||
|
||||
### Documentation
|
||||
|
||||
- **readme:** Improve installation instructions ([#3600](https://github.com/ScoopInstaller/Scoop/issues/3600))
|
||||
|
||||
## [2019-06-24](https://github.com/ScoopInstaller/Scoop/compare/2019-05-15...2019-06-24)
|
||||
|
||||
### Features
|
||||
|
||||
- **decompress:** Add 'ExtractDir' to 'Expand-...' functions ([#3466](https://github.com/ScoopInstaller/Scoop/issues/3466), [#3470](https://github.com/ScoopInstaller/Scoop/issues/3470), [#3472](https://github.com/ScoopInstaller/Scoop/issues/3472))
|
||||
- **decompress:** Allow 'Expand-InnoArchive -ExtractDir' to accept '{xxx}' ([#3487](https://github.com/ScoopInstaller/Scoop/issues/3487))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **config:** Show correct output when removing a config value ([#3462](https://github.com/ScoopInstaller/Scoop/issues/3462))
|
||||
- **decompress:** Change dark.exe parameter order ([6141e46d](https://github.com/ScoopInstaller/Scoop/commit/6141e46d6ae74b3ccf65e02a1c3fc92e1b4d3e7a))
|
||||
- **proxy:** Rename parameters for Net.NetworkCredential ([#3483](https://github.com/ScoopInstaller/Scoop/issues/3483))
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
- **core:** `run()` -> 'Invoke-ExternalCommand()' ([#3432](https://github.com/ScoopInstaller/Scoop/issues/3432))
|
||||
|
||||
### Builds
|
||||
|
||||
- **checkhashes:** Checkhashes downloading twice when architecture properties does hot have url property ([#3479](https://github.com/ScoopInstaller/Scoop/issues/3479))
|
||||
- **checkhashes:** Do not call scoop directly ([#3527](https://github.com/ScoopInstaller/Scoop/issues/3527))
|
||||
|
||||
### Documentation
|
||||
|
||||
- **readme:** Add known buckets to end of readme ([2849e0f9](https://github.com/ScoopInstaller/Scoop/commit/2849e0f96099004f761d7d8c715377e0d2c105f2))
|
||||
- **readme:** Adjust URL of `runat.json` ([#3484](https://github.com/ScoopInstaller/Scoop/issues/3484))
|
||||
- **readme:** Fix a small typo ([#3512](https://github.com/ScoopInstaller/Scoop/issues/3512))
|
||||
- **readme:** Fix typo in readme ([03bb07c8](https://github.com/ScoopInstaller/Scoop/commit/03bb07c8231563fa3a2092b9b52d4dde372f2a8e))
|
||||
- **readme:** Update readme with correct count of nirsoft apps ([e8d0be66](https://github.com/ScoopInstaller/Scoop/commit/e8d0be663b3bab25d9ee55c597b90bf922f4ec5d))
|
||||
|
||||
## [2019-05-15](https://github.com/ScoopInstaller/Scoop/compare/2019-05-12...2019-05-15)
|
||||
|
||||
### Features
|
||||
|
||||
- **manifest:** XPath support in checkver and autoupdate ([#3458](https://github.com/ScoopInstaller/Scoop/issues/3458))
|
||||
- **update:** Support changing scoop tracking repository ([#3459](https://github.com/ScoopInstaller/Scoop/issues/3459))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **autoupdate:** Handle xml namespace in xpath mode ([#3465](https://github.com/ScoopInstaller/Scoop/issues/3465))
|
||||
|
||||
## [2019-05-12](https://github.com/ScoopInstaller/Scoop/releases/tag/2019-05-12)
|
||||
|
||||
### BREAKING CHANGE
|
||||
|
||||
- **core:** Finalize bucket extraction ([#3399](https://github.com/ScoopInstaller/Scoop/issues/3399))
|
||||
- **core:** Bucket extraction and refactoring ([#3449](https://github.com/ScoopInstaller/Scoop/issues/3449))
|
||||
|
||||
### Features
|
||||
|
||||
- **autoupdate:** Add 'regex' alias for 'find' ([3453487e](https://github.com/ScoopInstaller/Scoop/commit/3453487ed65378cc9ba2efc658ed6bc1431ef463))
|
||||
- **autoupdate:** Allow simple metalink and meta4 hash extraction ([ecf627c3](https://github.com/ScoopInstaller/Scoop/commit/ecf627c3b8493b3ccf7ddb882b0c946533774d76))
|
||||
- **autoupdate:** Add version variables to autoupdate.hash.regex ([#2966](https://github.com/ScoopInstaller/Scoop/issues/2996))
|
||||
- **autoupdate:** Autoupdate improvements ([#1371](https://github.com/ScoopInstaller/Scoop/issues/1371))
|
||||
- **autoupdate:** Convert base64 encoded hash values ([04c9ddeb](https://github.com/ScoopInstaller/Scoop/commit/04c9ddeb6d3b99496c39543ad468d34f4f1adeff))
|
||||
- **autoupdate:** Improve base64 hash detection ([310096e2](https://github.com/ScoopInstaller/Scoop/commit/310096e2386ff3bf9082d547b140a98b92b87a83))
|
||||
- **core:** Add basic WSL support by appending .exe to powershell ([#2323](https://github.com/ScoopInstaller/Scoop/issues/2323))
|
||||
- **core:** Add Expand-DarkArchive and some other dependency features ([#3450](https://github.com/ScoopInstaller/Scoop/issues/3450))
|
||||
- **core:** Enable TLS 1.2 in core.ps1 ([#2074](https://github.com/ScoopInstaller/Scoop/issues/2074))
|
||||
- **core:** Prepare extraction of main bucket ([#3060](https://github.com/ScoopInstaller/Scoop/issues/3060))
|
||||
- **core:** Support loading basedirs from config ([#3121](https://github.com/ScoopInstaller/Scoop/issues/3121))
|
||||
- **core:** Update requirement to version 5 or greater ([#3330](https://github.com/ScoopInstaller/Scoop/issues/3330))
|
||||
- **core:** Use consistent User-Agent Header on all webrequests ([12962acf](https://github.com/ScoopInstaller/Scoop/commit/12962acfa853593e371d09186e51660aece331e5))
|
||||
- **core:** Warn on shim overwrite ([#2033](https://github.com/ScoopInstaller/Scoop/issues/2033))
|
||||
- **debug:** Add option to indent debug output ([bf54a978](https://github.com/ScoopInstaller/Scoop/commit/bf54a978a1bc2efcde52513a60ec5bcb7bb1a44e))
|
||||
- **decompress:** Allow other args to be passthrough ([#3411](https://github.com/ScoopInstaller/Scoop/issues/3411))
|
||||
- **download:** Add support for multi-connection downloads via aria2c ([#2312](https://github.com/ScoopInstaller/Scoop/issues/2312))
|
||||
- **download:** Convert sourceforge urls to use downloads mirror ([#3340](https://github.com/ScoopInstaller/Scoop/issues/3340))
|
||||
- **install:** Add .NET 4.5 check to scoop install script ([e52c24c9](https://github.com/ScoopInstaller/Scoop/commit/e52c24c94ec805a327440cc07aec699afc7cc308))
|
||||
- **install:** Set file write permission to global persist dir ([#2524](https://github.com/ScoopInstaller/Scoop/issues/2524))
|
||||
- **json:** Normalize multi-line strings to string arrays on format ([#2444](https://github.com/ScoopInstaller/Scoop/issues/2444))
|
||||
- **persist:** Support persisting files without a file extension ([#2408](https://github.com/ScoopInstaller/Scoop/issues/2408))
|
||||
- **shim:** Add '.com'-type shim ([#3366](https://github.com/ScoopInstaller/Scoop/issues/3366))
|
||||
- **shim:** Enabled applications which require elevated privileges ([#2053](https://github.com/ScoopInstaller/Scoop/issues/2053))
|
||||
- **shim:** Enabled shimming of external applications ([#2072](https://github.com/ScoopInstaller/Scoop/issues/2072))
|
||||
- **shim:** Enabled wide characters forwarding in shims ([#2106](https://github.com/ScoopInstaller/Scoop/issues/2106))
|
||||
- **shim:** Make shim support PowerShell 2.0 ([#2562](https://github.com/ScoopInstaller/Scoop/issues/2562))
|
||||
- **shim:** Create sh shim ([#1951](https://github.com/ScoopInstaller/Scoop/issues/1951))
|
||||
- **shortcuts:** Add subdirectories/arguments for shortcuts ([#1945](https://github.com/ScoopInstaller/Scoop/issues/1945))
|
||||
- **shortcuts:** Allow $dir, $original_dir and $persist_dir substitutions for shortcuts ([f3ddf0c0](https://github.com/ScoopInstaller/Scoop/commit/f3ddf0c0f81ee2a11466edf5d9f6e38a0fc2b9d4))
|
||||
- **shortcuts:** Get start menu folder location from environment rather than predefined user profile path ([c245a7fe](https://github.com/ScoopInstaller/Scoop/commit/c245a7fe96ffa0b0fba23bd47f31480ea93cc183))
|
||||
- **uninstall:** Print purge step to console ([#3123](https://github.com/ScoopInstaller/Scoop/issues/3123))
|
||||
- **uninstall:** Add support for soft/purge uninstalling of scoop itself ([#2781](https://github.com/ScoopInstaller/Scoop/issues/2781))
|
||||
- **update:** Add hold/unhold command ([#3444](https://github.com/ScoopInstaller/Scoop/issues/3444))
|
||||
- **scoop-checkup:** Add NTFS check to checkup command ([#1944](https://github.com/ScoopInstaller/Scoop/issues/1944))
|
||||
- **scoop-checkup:** Check for LongPaths setting ([#3387](https://github.com/ScoopInstaller/Scoop/issues/3387))
|
||||
- **scoop-info:** Add scoop-info command ([#2165](https://github.com/ScoopInstaller/Scoop/issues/2165))
|
||||
- **scoop-info:** Support url manifest ([#2538](https://github.com/ScoopInstaller/Scoop/issues/2538))
|
||||
- **scoop-prefix:** Add scoop prefix command ([#2117](https://github.com/ScoopInstaller/Scoop/issues/2117))
|
||||
- **scoop-update:** Add notification for new main bucket ([#3392](https://github.com/ScoopInstaller/Scoop/issues/3392))
|
||||
- **scoop-update:** Show changelog after updating scoop and buckets ([56c35f8f](https://github.com/ScoopInstaller/Scoop/commit/56c35f8f05ed387997ef1a80ec0362adec6e51a5))
|
||||
- **scoop-which:** Also show other applications in PATH with 'scoop which' ([79bf99c3](https://github.com/ScoopInstaller/Scoop/commit/79bf99c3c110494d799e147263db7b6f2f921d4e))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- **autoupdate:** Fix base64 hash extraction ([98afb999](https://github.com/ScoopInstaller/Scoop/commit/98afb99990561c4f98f1e1334f348e52b4bee4e7))
|
||||
- **autoupdate:** Fix base64 hash extraction length ([#2852](https://github.com/ScoopInstaller/Scoop/issues/2852))
|
||||
- **autoupdate:** Fix metalink hash extraction ([2ad54747](https://github.com/ScoopInstaller/Scoop/commit/2ad547477b1432e7a269c90b393d62d88dce9803))
|
||||
- **autoupdate:** Fix single line hash extraction ([#3015](https://github.com/ScoopInstaller/Scoop/issues/3015))
|
||||
- **autoupdate:** Improve auto-update hash extraction regex ([21bf0dea](https://github.com/ScoopInstaller/Scoop/commit/21bf0dea561db021aa59bcd9363792436ac7c162))
|
||||
- **autoupdate:** Linter fix ([c9539b65](https://github.com/ScoopInstaller/Scoop/commit/c9539b6575e8842a8f895d82b4119c3aef01d7c2))
|
||||
- **autoupdate:** Use normal variable instead of magic $matches variable name ([d74e0a85](https://github.com/ScoopInstaller/Scoop/commit/d74e0a85b4081745bd1ab107a45794f02299737d))
|
||||
- **bucket:** Change wording of new_issue_msg() ([e82587df](https://github.com/ScoopInstaller/Scoop/commit/e82587dfc41618474e03347df333e847dfaffc70))
|
||||
- **bucket:** Fix new_issue_msg ([#3375](https://github.com/ScoopInstaller/Scoop/issues/3375))
|
||||
- **bucket:** Use $_.Name on gci result ([1eb2609d](https://github.com/ScoopInstaller/Scoop/commit/1eb2609db51587772a4b5d1b6f58114f52639568))
|
||||
- **config:** Enable writing to hidden .scoop file ([#1982](https://github.com/ScoopInstaller/Scoop/issues/1982))
|
||||
- **config:** Save and load true/false values as booleans in scoops config ([16aec1a4](https://github.com/ScoopInstaller/Scoop/commit/16aec1a40b45ba241ef2ac45ccf89de7206891be))
|
||||
- **core:** Allowed underscores in package names ([#2930](https://github.com/ScoopInstaller/Scoop/issues/2930))
|
||||
- **core:** Clean up some error messages ([#2032](https://github.com/ScoopInstaller/Scoop/issues/2032))
|
||||
- **core:** Change sf regex not to break some manifests ([#2476](https://github.com/ScoopInstaller/Scoop/issues/2476))
|
||||
- **core:** Check if 7zip installed via Scoop instead of using 7z.exe from PATH ([55ce0c0b](https://github.com/ScoopInstaller/Scoop/commit/55ce0c0b0c481ec3807655cb7aeac6dfcf9ef271))
|
||||
- **core:** Filter null or empty string from Scoops directory settings ([5d5c7fa9](https://github.com/ScoopInstaller/Scoop/commit/5d5c7fa91c03f05b705d3420618ec96d8e870174))
|
||||
- **core:** Fix "enable-encryptionscheme" for OSes before Windows 10 ([#2084](https://github.com/ScoopInstaller/Scoop/issues/2084))
|
||||
- **core:** Fix bug with Start-Process -Wait, exclusive to PowerShell Core on Windows 7 ([#3415](https://github.com/ScoopInstaller/Scoop/issues/3415))
|
||||
- **core:** Fix for relative paths ([ff9c0c3d](https://github.com/ScoopInstaller/Scoop/commit/ff9c0c3dafb3567ee958379b83205da84a925ecf))
|
||||
- **core:** Fix robocopy not releasing a directory after moving it ([e2792f2e](https://github.com/ScoopInstaller/Scoop/commit/e2792f2e02adee5947ebb95022a62282fb61024f))
|
||||
- **core:** Fix substitute() for arrays ([#2048](https://github.com/ScoopInstaller/Scoop/issues/2048))
|
||||
- **core:** Format hashes to lowercase ([5d56f8ff](https://github.com/ScoopInstaller/Scoop/commit/5d56f8ff5760ddedaf44eaf9652000e833b0944e))
|
||||
- **core:** Invoke powershell with -noprofile flag from bash shims ([#3165](https://github.com/ScoopInstaller/Scoop/issues/3165))
|
||||
- **core:** Removed the bucket from the app name when checking directories ([#2435](https://github.com/ScoopInstaller/Scoop/issues/2435))
|
||||
- **core:** Return true for checking if a directory is 'in' itself ([ac8a1567](https://github.com/ScoopInstaller/Scoop/commit/ac8a156796cb6d3d9cba24a2839271d924ab8fea))
|
||||
- **core:** Store last update time as String ([e8af15cc](https://github.com/ScoopInstaller/Scoop/commit/e8af15cc0615b707aee79be95f9c00e3ae0bfd9b))
|
||||
- **decompress:** Add .bz2 files to decompression ([#2085](https://github.com/ScoopInstaller/Scoop/issues/2085))
|
||||
- **decompress:** Added retry when unzip fail because of AV ([#1822](https://github.com/ScoopInstaller/Scoop/issues/1822))
|
||||
- **decompress:** Catch unzip failures from bad file names ([#2472](https://github.com/ScoopInstaller/Scoop/issues/2472))
|
||||
- **decompress:** Compatible Expand-ZipArchive() with Pscx ([#3425](https://github.com/ScoopInstaller/Scoop/issues/3425))
|
||||
- **decompress:** Correct deprecation function name ([#3406](https://github.com/ScoopInstaller/Scoop/issues/3406))
|
||||
- **decompress:** Fix dark parameter order ([87a1e784](https://github.com/ScoopInstaller/Scoop/commit/87a1e784d7463fea36fa41fcb7cb5537cbcfdc52))
|
||||
- **depends:** Don't force adding dark dependency ([#3453](https://github.com/ScoopInstaller/Scoop/issues/3453))
|
||||
- **depends:** Don't include the requested app in the list of dependencies ([1bc6a479](https://github.com/ScoopInstaller/Scoop/commit/1bc6a479ee969e44e2b0d83ed6ff19efd86c6ae9))
|
||||
- **depends:** Fix empty bucket name ([#2827](https://github.com/ScoopInstaller/Scoop/issues/2827))
|
||||
- **depends:** Fix null reference error when no buckets are configured ([88040972](https://github.com/ScoopInstaller/Scoop/commit/88040972a30b459a3859c7c2f883e47e19da9f84))
|
||||
- **depends:** Show message about missing bucket when installing dependencies ([7a6218c5](https://github.com/ScoopInstaller/Scoop/commit/7a6218c58677170fe32cf1c2bfcfe7488e4c3655))
|
||||
- **download:** Don't send referer to portableapps.com ([0c2b3da3](https://github.com/ScoopInstaller/Scoop/commit/0c2b3da3ff639722ad3ddf587219bb3155e97c7f))
|
||||
- **download:** Fix fosshub downloads with aria2c ([803525a8](https://github.com/ScoopInstaller/Scoop/commit/803525a8661ffaa39fc4ad6f0dc776cccad4c45e))
|
||||
- **download:** Interrupt download causes partial cache file to be used for next install ([5be02865](https://github.com/ScoopInstaller/Scoop/commit/5be0286561398debfee2c0610e51f006ef2dc2fb))
|
||||
- **download:** Overwrite any existing files when extracting ([58cca68f](https://github.com/ScoopInstaller/Scoop/commit/58cca68f7565bd5e8f63e08ad052c0029b98a23d))
|
||||
- **download:** Show warning about SourceForge.net hash validation fails ([8504338b](https://github.com/ScoopInstaller/Scoop/commit/8504338bc5faab3235cef2e1c2f41abd7ae496eb))
|
||||
- **getopt:** Don't try to parse int arguments ([23fe5a53](https://github.com/ScoopInstaller/Scoop/commit/23fe5a5319d4ede84c532df04f576c3854fd5826))
|
||||
- **getopt:** Don't try to parse array arguments ([9b6e7b5e](https://github.com/ScoopInstaller/Scoop/commit/9b6e7b5e0f7f6ddecdb139f932ad7d582fe639a4))
|
||||
- **getopt:** Return remaining args, use getopt for scoop install ([b7cfd6fd](https://github.com/ScoopInstaller/Scoop/commit/b7cfd6fdb0e18a623ceacfa6fc824241dabc6d01))
|
||||
- **getopt:** Skip if arg is $null ([f2d9f0d7](https://github.com/ScoopInstaller/Scoop/commit/f2d9f0d79fdf4a63879c1b87a6c0f5317a40a1d9))
|
||||
- **getopt:** Skip arg if it's decimal ([5f0c8cfb](https://github.com/ScoopInstaller/Scoop/commit/5f0c8cfb0a34078bb8118a21191cf046ddad18ac))
|
||||
- **git:** Disable git pager when running git log ([cac99759](https://github.com/ScoopInstaller/Scoop/commit/cac9975924691fe6e608789218b06be56bb8c658))
|
||||
- **git:** Fix update log output ([0daa25c6](https://github.com/ScoopInstaller/Scoop/commit/0daa25c6300cd2ab605d63b71037d741c9c904c6))
|
||||
- **json:** Catch JsonReaderException ([fb58e92c](https://github.com/ScoopInstaller/Scoop/commit/fb58e92c13552199f19f5df112801fc41321eee2))
|
||||
- **install:** Add filename to warning for files without hash in the manifest ([4c9beee8](https://github.com/ScoopInstaller/Scoop/commit/4c9beee8f2df891b2ec314e1efffb2ee9d5cca20))
|
||||
- **install:** Add multi-line support to pre/post_install ([#1980](https://github.com/ScoopInstaller/Scoop/issues/1980))
|
||||
- **install:** Added exclusion for sourceforge. [#METR-21516] ([#2109](https://github.com/ScoopInstaller/Scoop/issues/2109))
|
||||
- **install:** Ignore url fragment for PowerShell Core 6.1.0 ([#2602](https://github.com/ScoopInstaller/Scoop/issues/2602))
|
||||
- **install:** Fix fail when installing from non-default bucket ([#2247](https://github.com/ScoopInstaller/Scoop/issues/2247))
|
||||
- **install:** Fix PowerShell core crash ([#2554](https://github.com/ScoopInstaller/Scoop/issues/2554))
|
||||
- **install:** Option to skip hash validation and error message improvements ([#2260](https://github.com/ScoopInstaller/Scoop/issues/2260))
|
||||
- **install:** Remove env_ensure_home ([#1967](https://github.com/ScoopInstaller/Scoop/issues/1967))
|
||||
- **install:** Show first 8 bytes of file in the hash check error message ([e4cbb42e](https://github.com/ScoopInstaller/Scoop/commit/e4cbb42e64843e53b5b24de92f43062bca98c474))
|
||||
- **persist:** Fix condition for persist_permission() ([eb7b7cbf](https://github.com/ScoopInstaller/Scoop/commit/eb7b7cbf4f30e4122762856723155f3c1e980d1b)) ([1a2598bc](https://github.com/ScoopInstaller/Scoop/commit/1a2598bc3082a2e3fffac1a6bea0b42032e388f0))
|
||||
- **persist:** Fixed persisting bug when force update app with same version ([#2774](https://github.com/ScoopInstaller/Scoop/issues/2774))
|
||||
- **persist:** Fix the target didn't be created ([#3008](https://github.com/ScoopInstaller/Scoop/issues/3008))
|
||||
- **persist:** Prevent directory creation from being output ([#1999](https://github.com/ScoopInstaller/Scoop/issues/1999))
|
||||
- **scoop:** Force to add new main bucket ([#3419](https://github.com/ScoopInstaller/Scoop/issues/3419))
|
||||
- **shim:** Fix .ps1 shim parsing logic ([#2564](https://github.com/ScoopInstaller/Scoop/issues/2564))
|
||||
- **shim:** Fixed ps1/jar->ps1 shims args handling ([#2120](https://github.com/ScoopInstaller/Scoop/issues/2120))
|
||||
- **shortcuts:** Improve Shortcut creation ([83b82386](https://github.com/ScoopInstaller/Scoop/commit/83b823868f5ef5256d3dcfbecff278bb355fefc8))
|
||||
- **uninstall:** Better error handling during uninstallation ([#2079](https://github.com/ScoopInstaller/Scoop/issues/2079))
|
||||
- **uninstall:** Uninstall fails to remove architecture-specific shims ([8b1871b2](https://github.com/ScoopInstaller/Scoop/commit/8b1871b20df4dbf1b603d4066937ba213c03bb32))
|
||||
- **update:** Rewording PowerShell update notice ([d006fb93](https://github.com/ScoopInstaller/Scoop/commit/d006fb9315b55a9d8e6a36218cf5dbdde51433ec))
|
||||
- **versions:** Improvements for the reset command to deal with empty current alias dir correctly ([#2896](https://github.com/ScoopInstaller/Scoop/issues/2896))
|
||||
- **scoop-alias:** Improve "scoop alias list" output ([#2163](https://github.com/ScoopInstaller/Scoop/issues/2163))
|
||||
- **scoop-cache:** Display help on incorrect cache command ([#3431](https://github.com/ScoopInstaller/Scoop/issues/3431))
|
||||
- **scoop-cache:** scoop cache command not using $SCOOP_CACHE ([#1990](https://github.com/ScoopInstaller/Scoop/issues/1990))
|
||||
- **scoop-info:** Improve scoop-info license attributes output ([#2397](https://github.com/ScoopInstaller/Scoop/issues/2397))
|
||||
- **scoop-install:** Prevent installing programs from JSON multiple times ([936cf9cb](https://github.com/ScoopInstaller/Scoop/commit/936cf9cbb0c4dd3a594fbaf5c696ce519e586d8c))
|
||||
- **scoop-reset:** Persist data on reset ([#2773](https://github.com/ScoopInstaller/Scoop/issues/2773))
|
||||
- **scoop-reset:** Re-create shortcuts ([6e5b7e57](https://github.com/ScoopInstaller/Scoop/commit/6e5b7e57bb0628f072872d9a5b8c8a0fa58389e1))
|
||||
- **scoop-search:** Better handling for invalid query ([bf024705](https://github.com/ScoopInstaller/Scoop/commit/bf024705a8cc38592571aa3026dca2471f19ac5a))
|
||||
- **scoop-uninstall:** Checked if uninstaller removed its directory ([#2078](https://github.com/ScoopInstaller/Scoop/issues/2078))
|
||||
- **scoop-update:** Add config option "show_update_log" ([d68cb3ce](https://github.com/ScoopInstaller/Scoop/commit/d68cb3ce52acaa9983f278822febd506f54ebe02))
|
||||
- **scoop-update:** First scoop update fails because scoop deletes itself too early ([376630fd](https://github.com/ScoopInstaller/Scoop/commit/376630fd80a3f9012fd6e673460b9e28e375e951))
|
||||
- **scoop-update:** Fix branch switching ([#3372](https://github.com/ScoopInstaller/Scoop/issues/3372))
|
||||
- **scoop-update:** Fix update with cookies ([#3261](https://github.com/ScoopInstaller/Scoop/issues/3261))
|
||||
- **scoop-update:** Improve is_scoop_outdated() and add last_scoop_update() ([f3f559c4](https://github.com/ScoopInstaller/Scoop/commit/f3f559c460406689dab2375310fb1026e2be58bd))
|
||||
- **scoop-update:** Resolve linting, fix appveyor tests error ([#2148](https://github.com/ScoopInstaller/Scoop/issues/2148))
|
||||
|
||||
### Code Refactoring
|
||||
|
||||
- **bucket:** Move function into lib from lib-exec ([#3062](https://github.com/ScoopInstaller/Scoop/issues/3062))
|
||||
- **bucket:** Optimize buckets function ([#3341](https://github.com/ScoopInstaller/Scoop/issues/3341))
|
||||
- **config:** Move configuration handling to core.ps1 ([#3242](https://github.com/ScoopInstaller/Scoop/issues/3242))
|
||||
- **core:** aria2_path() -> file_path() ([0f464016](https://github.com/ScoopInstaller/Scoop/commit/0f4640168da8d68a52eb2b80af2f3ffa01c9b658))
|
||||
- **core:** cmd_available() -> Test-CommandAvailable() ([#3314](https://github.com/ScoopInstaller/Scoop/issues/3314))
|
||||
- **core:** ensure_all_installed() -> Confirm-InstallationStatus() ([#3293](https://github.com/ScoopInstaller/Scoop/issues/3293))
|
||||
- **core:** Move default_aliases into the scoped function ([#3233](https://github.com/ScoopInstaller/Scoop/issues/3233))
|
||||
- **core:** Refactor function names and fix installing 7zip locally if already globally available ([#3416](https://github.com/ScoopInstaller/Scoop/issues/3416))
|
||||
- **core:** Simplified last_scoop_update() ([#2931](https://github.com/ScoopInstaller/Scoop/issues/2931))
|
||||
- **core:** Tweak SecurityProtocol usage ([#3065](https://github.com/ScoopInstaller/Scoop/issues/3065))
|
||||
- **decompress:** Refactored (w/ install.ps1, core.ps1) ([#3169](https://github.com/ScoopInstaller/Scoop/issues/3169))
|
||||
- **decompress:** Refactor extraction handling functions ([#3204](https://github.com/ScoopInstaller/Scoop/issues/3204))
|
||||
- **download:** Download functionality refactor ([#1329](https://github.com/ScoopInstaller/Scoop/issues/1329))
|
||||
- **install:** Rename locate() to Find-Manifest() ([9eed3d89](https://github.com/ScoopInstaller/Scoop/commit/9eed3d8914c7a0fa294110eb0761776a01adf034))
|
||||
|
||||
### Builds
|
||||
|
||||
- **auto-pr:** Add -App parameter ([#3157](https://github.com/ScoopInstaller/Scoop/issues/3157))
|
||||
- **auto-pr:** Add SkipUpdated parameter ([#3168](https://github.com/ScoopInstaller/Scoop/issues/3168))
|
||||
- **checkhashes:** Add bin\checkhashes.ps1 ([#2766](https://github.com/ScoopInstaller/Scoop/issues/2766))
|
||||
- **checkurls:** Add SkipValid Parameter ([#2845](https://github.com/ScoopInstaller/Scoop/issues/2845))
|
||||
- **checkurls:** Import config.ps1 in checkurls.ps1 ([126e9c97](https://github.com/ScoopInstaller/Scoop/commit/126e9c97d2ef7db537a5137167089a97f343e98e))
|
||||
- **checkver:** Add 'useragent' property ([8feb3867](https://github.com/ScoopInstaller/Scoop/commit/8feb3867a74ea0340585e3e695934d96cf483a05))
|
||||
- **checkver:** Add 'jsonpath' alias for 'jp' ([76fdb6b7](https://github.com/ScoopInstaller/Scoop/commit/76fdb6b74c1772bf607d2dad5f6c50269369ff88))
|
||||
- **checkver:** Add 're' alias 'regex' ([468649c8](https://github.com/ScoopInstaller/Scoop/commit/468649c88dea9c1ff9614f2cdf29a521d572664e))
|
||||
- **checkver:** Allow using the current version in checkver URL ([607ac9ca](https://github.com/ScoopInstaller/Scoop/commit/607ac9ca7c185da61e2c746ea87d28c2abe62adc))
|
||||
- **checkver:** Fix example parameters ([#3413](https://github.com/ScoopInstaller/Scoop/issues/3413))
|
||||
- **checkver:** GitHub checkver case-insensitive version check ([2e2633e9](https://github.com/ScoopInstaller/Scoop/commit/2e2633e9640f6cab5c2f895b680345cd6ca))
|
||||
- **checkver:** Remove old commented code ([72754036](https://github.com/ScoopInstaller/Scoop/commit/72754036a251fffd2f2eb0e242edfd9895543e3c))
|
||||
- **checkver:** Resolve issue on Powershell >6.1.0 ([#2592](https://github.com/ScoopInstaller/Scoop/issues/2592))
|
||||
- **checkver:** Support skipping up to date manifests ([#2624](https://github.com/ScoopInstaller/Scoop/issues/2624))
|
||||
- **schema:** Add shortcutsArray definition to schema.json ([0c7e6002](https://github.com/ScoopInstaller/Scoop/commit/0c7e60024a06e122331b17a204a158e4c5800a3d))
|
||||
- **schema:** extract_to property is on active duty (not deprecated) ([59e994c5](https://github.com/ScoopInstaller/Scoop/commit/59e994c5fdeb8dffe6037ca6767d56ad13bf04da))
|
||||
- **schema:** Improve comments in schema.json ([b5ed0761](https://github.com/ScoopInstaller/Scoop/commit/b5ed0761aef4f3e864533dc0460d110115850ba7))
|
||||
- **supporting:** Update validator.exe and shim.exe ([#2024](https://github.com/ScoopInstaller/Scoop/issues/2024), [#2034](https://github.com/ScoopInstaller/Scoop/issues/2034))
|
||||
- **supporting:** Update Newtonsoft.Json to 11.0.2, Newtonsoft.Json.Schema to 3.0.10 ([#3043](https://github.com/ScoopInstaller/Scoop/issues/3043))
|
||||
- **validator:** Improve error reporting, add support for multiple files ([#3134](https://github.com/ScoopInstaller/Scoop/issues/3134))
|
||||
|
||||
### Continuous Integration
|
||||
|
||||
- **appveyor:** Rebuild cache ([7311b41b](https://github.com/ScoopInstaller/Scoop/commit/7311b41b8d1e2e010175fb7d079662bbcba5bac8))
|
||||
- **appveyor:** Run tests for PowerShell 5 and 6 ([#2603](https://github.com/ScoopInstaller/Scoop/issues/2603))
|
||||
- **test:** Improve installation of lessmsi and innounp ([#3409](https://github.com/ScoopInstaller/Scoop/issues/3409))
|
||||
|
||||
### Styles
|
||||
|
||||
- **lint:** PSAvoidUsingCmdletAliases ([#2075](https://github.com/ScoopInstaller/Scoop/issues/2075))
|
||||
|
||||
### Tests
|
||||
|
||||
- **bucket:** Add importable tests for Buckets ([478f52c4](https://github.com/ScoopInstaller/Scoop/commit/478f52c421ca35ea35b5fd0b2df2631cf7d82487))
|
||||
- **bucket:** Fix manifest tests for buckets ([589303fa](https://github.com/ScoopInstaller/Scoop/commit/589303facc5284f6f95c1305191e0558c0169691))
|
||||
- **bucket:** Handle JSON.NET schema validation limit exceeded. ([139813a8](https://github.com/ScoopInstaller/Scoop/commit/139813a8f50ace85e2752d9b6c9f82fc64ff3e48))
|
||||
- **file:** Move style constraints tests to separate test file ([7b7113fc](https://github.com/ScoopInstaller/Scoop/commit/7b7113fc3bf962aaeba625f58341c30a80f0fe6a))
|
||||
- **linux:** Fix some tests on linux ([#2153](https://github.com/ScoopInstaller/Scoop/issues/2153))
|
||||
- **manifest:** Expose bucketdir variable in manifest test script ([#2182](https://github.com/ScoopInstaller/Scoop/issues/2182))
|
||||
- **test:** Add -TestPath param to test.ps1 ([f857dce9](https://github.com/ScoopInstaller/Scoop/commit/f857dce9f59a490f6dd07085c3abaa51e9577fda))
|
||||
- **test:** Force install PSScriptAnalyzer and BuildHelpers ([7a1b5a18](https://github.com/ScoopInstaller/Scoop/commit/7a1b5a1840e30321951fa0f5333c34d10f57fa94))
|
||||
- **test:** Require BuildHelpers version 2.0.0 ([ac3ee766](https://github.com/ScoopInstaller/Scoop/commit/ac3ee766722e99c1f15dc60a1f1dfb0a48428c55))
|
||||
- **test:** Update BuildHelpers to version 2.0.1 ([dde4d0f9](https://github.com/ScoopInstaller/Scoop/commit/dde4d0f93f260191af5524c0ecab927f3e252361))
|
||||
- **core:** Use Pester 4.0 syntax in core tests ([#2712](https://github.com/ScoopInstaller/Scoop/issues/2712))
|
||||
- **install:** Use Pester 4.0 syntax to the install tests ([#2713](https://github.com/ScoopInstaller/Scoop/issues/2713))
|
||||
- **test:** Use Pester 4.0 syntax to multiple files ([#2714](https://github.com/ScoopInstaller/Scoop/issues/2714))
|
||||
|
||||
### Documentation
|
||||
|
||||
- **readme:** Add discord chat badge ([#3241](https://github.com/ScoopInstaller/Scoop/issues/3241))
|
||||
- **readme:** Add more details about scoops installation ([#2273](https://github.com/ScoopInstaller/Scoop/issues/2273))
|
||||
- **readme:** Corrected enable powershell executionpolicy ([#2020](https://github.com/ScoopInstaller/Scoop/issues/2020))
|
||||
- **readme:** Update Discord invite link ([5f269249](https://github.com/ScoopInstaller/Scoop/commit/5f269249609b43f5c4fa9aba4def999e7ee05fe1))
|
||||
- **readme:** Update requirements note ([#2509](https://github.com/ScoopInstaller/Scoop/issues/2509))
|
||||
- **readme:** Fix typo (you -> your), (it's -> its) ([#2698](https://github.com/ScoopInstaller/Scoop/issues/2698))
|
||||
- **readme:** Remove trailing whitespaces ([d25186bf](https://github.com/ScoopInstaller/Scoop/commit/d25186bf1f833e30d8c5b530b7c260fe399b75ed))
|
||||
- **readme:** Remove "tail" from example (is coreutils) ([#2158](https://github.com/ScoopInstaller/Scoop/issues/2158))
|
||||
|
||||
## *Commits before 2018 are trimmed*
|
||||
49
LICENSE
49
LICENSE
@@ -1,27 +1,3 @@
|
||||
SPDX-License-Identifier: UNLICENSE or MIT
|
||||
|
||||
INFORMATION ABOUT THIS PROJECT'S LICENSE (SHORT)
|
||||
============================================================================================
|
||||
This project is licensed under the Unlicense or the MIT license,
|
||||
at your option.
|
||||
|
||||
INFORMATION ABOUT THIS PROJECT'S LICENSE (LONG)
|
||||
============================================================================================
|
||||
This project ("Scoop") is free software, licensed under the Unlicense or the
|
||||
MIT license, at your option. Scoop was previously licensed under only the Unlicense,
|
||||
but was dual-licensed from version 0.2.0.
|
||||
|
||||
Scoop comes with ABSOLUTELY NO WARRANTY. Use it at your own risk. Scoop is provided
|
||||
on an AS-IS BASIS and its contributors disclaim all warranties.
|
||||
|
||||
You may use, modify, distribute, sell, copy, compile, or merge Scoop by any means.
|
||||
|
||||
Copies of both licenses can be found below.
|
||||
|
||||
THE LICENSE OF SCOOP
|
||||
============================================================================================
|
||||
Unlicense
|
||||
---------
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
@@ -46,28 +22,3 @@ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <http://unlicense.org/>
|
||||
|
||||
MIT license
|
||||
-----------
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013-2017 Luke Sampson (https://github.com/lukesampson)
|
||||
Copyright (c) 2013-present Scoop contributors (https://github.com/ScoopInstaller/Scoop/graphs/contributors)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
@{
|
||||
# Only diagnostic records of the specified severity will be generated.
|
||||
# Uncomment the following line if you only want Errors and Warnings but
|
||||
# not Information diagnostic records.
|
||||
Severity = @('Error')
|
||||
|
||||
# Analyze **only** the following rules. Use IncludeRules when you want
|
||||
# to invoke only a small subset of the defualt rules.
|
||||
# IncludeRules = @('PSAvoidDefaultValueSwitchParameter',
|
||||
# 'PSMisleadingBacktick',
|
||||
# 'PSMissingModuleManifestField',
|
||||
# 'PSReservedCmdletChar',
|
||||
# 'PSReservedParams',
|
||||
# 'PSShouldProcess',
|
||||
# 'PSUseApprovedVerbs',
|
||||
# 'PSAvoidUsingCmdletAliases',
|
||||
# 'PSUseDeclaredVarsMoreThanAssignments')
|
||||
|
||||
# Do not analyze the following rules. Use ExcludeRules when you have
|
||||
# commented out the IncludeRules settings above and want to include all
|
||||
# the default rules except for those you exclude below.
|
||||
# Note: if a rule is in both IncludeRules and ExcludeRules, the rule
|
||||
# will be excluded.
|
||||
ExcludeRules = @(
|
||||
# Currently Scoop widely uses Write-Host to output colored text.
|
||||
'PSAvoidUsingWriteHost'
|
||||
)
|
||||
}
|
||||
165
README.md
165
README.md
@@ -1,148 +1,65 @@
|
||||
<h1 align="center">Scoop</h1>
|
||||
|
||||
<!--<img src="scoop.png" alt="Long live Scoop!"/>-->
|
||||
<p align="center">
|
||||
<a href="https://github.com/ScoopInstaller/Scoop#what-does-scoop-do">Features</a>
|
||||
|
|
||||
<a href="https://github.com/ScoopInstaller/Scoop#installation">Installation</a>
|
||||
|
|
||||
<a href="https://github.com/ScoopInstaller/Scoop/wiki">Documentation</a>
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/ScoopInstaller/Scoop">
|
||||
<img src="https://img.shields.io/github/languages/code-size/ScoopInstaller/Scoop.svg" alt="Code Size" />
|
||||
</a>
|
||||
<a href="https://github.com/ScoopInstaller/Scoop">
|
||||
<img src="https://img.shields.io/github/repo-size/ScoopInstaller/Scoop.svg" alt="Repository size" />
|
||||
</a>
|
||||
<a href="https://github.com/ScoopInstaller/Scoop/actions/workflows/ci.yml">
|
||||
<img src="https://github.com/ScoopInstaller/Scoop/actions/workflows/ci.yml/badge.svg" alt="Scoop Core CI Tests" />
|
||||
</a>
|
||||
<a href="https://discord.gg/s9yRQHt">
|
||||
<img src="https://img.shields.io/badge/chat-on%20discord-7289DA.svg" alt="Discord Chat" />
|
||||
</a>
|
||||
<a href="https://gitter.im/lukesampson/scoop">
|
||||
<img src="https://badges.gitter.im/lukesampson/scoop.png" alt="Gitter Chat" />
|
||||
</a>
|
||||
<a href="./LICENSE">
|
||||
<img src="https://img.shields.io/badge/license-UNLICENSE%20or%20MIT-blue" alt="License" />
|
||||
</a>
|
||||
</p>
|
||||
Scoop [](https://ci.appveyor.com/project/lukesampson/scoop) [](https://gitter.im/lukesampson/scoop)
|
||||
=====
|
||||
|
||||
Scoop is a command-line installer for Windows.
|
||||
|
||||
## What does Scoop do?
|
||||
Requirements:
|
||||
|
||||
Scoop installs apps from the command line with a minimal amount of friction. It:
|
||||
* [PowerShell 3](https://www.microsoft.com/en-us/download/details.aspx?id=34595)
|
||||
* PowerShell must be enabled for your user account e.g. `set-executionpolicy remotesigned -s cu`
|
||||
|
||||
- Eliminates [User Account Control](https://learn.microsoft.com/windows/security/application-security/application-control/user-account-control/) (UAC) prompt notifications.
|
||||
- Hides the graphical user interface (GUI) of wizard-style installers.
|
||||
- Prevents polluting the `PATH` environment variable. Normally, this variable gets cluttered as different apps are installed on the device.
|
||||
- Avoids unexpected side effects from installing and uninstalling apps.
|
||||
- Resolves and installs dependencies automatically.
|
||||
- Performs all the necessary steps to get an app to a working state.
|
||||
To install:
|
||||
|
||||
Scoop is quite script-friendly. Your environment can become the way you like by using repeatable setups. For example:
|
||||
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
|
||||
|
||||
```console
|
||||
Once installed, run `scoop help` for instructions.
|
||||
|
||||
What does Scoop do?
|
||||
-------------------
|
||||
|
||||
Scoop installs programs from the command line with a minimal amount of friction. It tries to eliminate things like:
|
||||
* Permission popup windows
|
||||
* GUI wizard-style installers
|
||||
* Path pollution from installing lots of programs
|
||||
* Unexpected side-effects from installing and uninstalling programs
|
||||
* The need to find and install dependencies
|
||||
* The need to perform extra setup steps to get a working program
|
||||
|
||||
Scoop is very scriptable, so you can run repeatable setups to get your environment just the way you like, e.g.:
|
||||
|
||||
```powershell
|
||||
scoop install sudo
|
||||
sudo scoop install 7zip git openssh --global
|
||||
scoop install aria2 curl grep sed less touch
|
||||
scoop install curl grep sed less tail touch
|
||||
scoop install python ruby go perl
|
||||
```
|
||||
|
||||
If you have built software that you would like others to use, Scoop is an alternative to building an installer (like MSI or InnoSetup). You just need to compress your app to a `.zip` file and provide a JSON manifest that describes how to install it.
|
||||
If you've built software that you'd like others to use, Scoop is an alternative to building an installer (e.g. MSI or InnoSetup)—you just need to zip your program and provide a JSON manifest that describes how to install it.
|
||||
|
||||
## Installation
|
||||
### [Documentation](https://github.com/lukesampson/scoop/wiki)
|
||||
|
||||
Run the following commands from a regular (non-admin) PowerShell terminal to install Scoop:
|
||||
Inspiration
|
||||
-----------
|
||||
|
||||
```powershell
|
||||
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||||
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
|
||||
```
|
||||
* [Homebrew](http://mxcl.github.io/homebrew/)
|
||||
* [sub](https://github.com/37signals/sub#readme)
|
||||
|
||||
**Note**: The first command makes your device allow running the installation and management scripts. This is necessary because Windows 10 client devices restrict execution of any PowerShell scripts by default.
|
||||
What sort of apps can Scoop install?
|
||||
------------------------------------
|
||||
|
||||
It will install Scoop to its default location:
|
||||
The apps that install best with Scoop are commonly called "portable" apps: i.e. compressed program files that run stand-alone when extracted and don't have side-effects like changing the registry or putting files outside the program directory.
|
||||
|
||||
`C:\Users\<YOUR USERNAME>\scoop`
|
||||
Since installers are common, Scoop supports them too (and their uninstallers).
|
||||
|
||||
You can find the complete documentation about the installer, including advanced installation configurations, in [ScoopInstaller/Install](https://github.com/ScoopInstaller/Install). Please create new issues there if you have questions about the installation.
|
||||
Scoop is also great at handling single-file programs and Powershell scripts. These don't even need to be compressed. See the [runat](https://github.com/lukesampson/scoop/blob/master/bucket/runat.json) package for an example: it's really just a GitHub gist.
|
||||
|
||||
## Multi-connection downloads with `aria2`
|
||||
|
||||
Scoop can utilize [`aria2`](https://github.com/aria2/aria2) to use multi-connection downloads. Simply install `aria2` through Scoop and it will be used for all downloads afterward.
|
||||
Support this project
|
||||
--------------------
|
||||
|
||||
```console
|
||||
scoop install aria2
|
||||
```
|
||||
If you find Scoop useful and would like to support ongoing development and maintenance, here's how:
|
||||
|
||||
By default, `scoop` displays a warning when running `scoop install` or `scoop update` while `aria2` is enabled. This warning can be suppressed by running `scoop config aria2-warning-enabled false`.
|
||||
* [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=DM2SUH9EUXSKJ) (one-time donation)
|
||||
* [Gratipay](https://gratipay.com/~lukesampson) (ongoing donations)
|
||||
|
||||
You can tweak the following `aria2` settings with the `scoop config` command:
|
||||
|
||||
- aria2-enabled (default: true)
|
||||
- aria2-warning-enabled (default: true)
|
||||
- [aria2-retry-wait](https://aria2.github.io/manual/en/html/aria2c.html#cmdoption-retry-wait) (default: 2)
|
||||
- [aria2-split](https://aria2.github.io/manual/en/html/aria2c.html#cmdoption-s) (default: 5)
|
||||
- [aria2-max-connection-per-server](https://aria2.github.io/manual/en/html/aria2c.html#cmdoption-x) (default: 5)
|
||||
- [aria2-min-split-size](https://aria2.github.io/manual/en/html/aria2c.html#cmdoption-k) (default: 5M)
|
||||
- [aria2-options](https://aria2.github.io/manual/en/html/aria2c.html#options) (default: )
|
||||
|
||||
## Inspiration
|
||||
|
||||
- [Homebrew](https://brew.sh/)
|
||||
- [Sub](https://signalvnoise.com/posts/3264-automating-with-convention-introducing-sub)
|
||||
|
||||
## What sort of apps can Scoop install?
|
||||
|
||||
The apps that are most likely to get installed fine with Scoop are those referred to as "portable" apps. These apps are compressed files which can run standalone after being extracted. This type of apps does not produce side effects like changing the Windows Registry or placing files outside the app directory.
|
||||
|
||||
Scoop also supports installer files and their uninstallation methods. Likewise, it can handle single-file apps and PowerShell scripts. These do not even need to be compressed. See the [runat](https://github.com/ScoopInstaller/Main/blob/master/bucket/runat.json) package for an example: it is simply a GitHub gist.
|
||||
|
||||
### Contribute to this project
|
||||
|
||||
If you would like to improve Scoop by adding features or fixing bugs, please read our [Contributing Guide](https://github.com/ScoopInstaller/.github/blob/main/.github/CONTRIBUTING.md).
|
||||
|
||||
### Support this project
|
||||
|
||||
If you find Scoop useful and would like to support the ongoing development and maintenance of this project, you can donate here:
|
||||
|
||||
- [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=DM2SUH9EUXSKJ) (one-time donations)
|
||||
|
||||
## Known application buckets
|
||||
|
||||
The following buckets are known to Scoop:
|
||||
|
||||
- [main](https://github.com/ScoopInstaller/Main) - Default bucket which contains popular non-GUI apps.
|
||||
- [extras](https://github.com/ScoopInstaller/Extras) - Apps that do not fit the main bucket's [criteria](https://github.com/ScoopInstaller/Scoop/wiki/Criteria-for-including-apps-in-the-main-bucket).
|
||||
- [games](https://github.com/Calinou/scoop-games) - Open-source and freeware video games and game-related tools.
|
||||
- [nerd-fonts](https://github.com/matthewjberger/scoop-nerd-fonts) - Nerd Fonts.
|
||||
- [nirsoft](https://github.com/ScoopInstaller/Nirsoft) - A collection of over 250+ apps from [Nirsoft](https://nirsoft.net).
|
||||
- [sysinternals](https://github.com/niheaven/scoop-sysinternals) - The Sysinternals suite from [Microsoft](https://learn.microsoft.com/sysinternals/).
|
||||
- [java](https://github.com/ScoopInstaller/Java) - A collection of Java development kits (JDKs) and Java runtime engines (JREs), Java's virtual machine debugging tools and Java based runtime engines.
|
||||
- [nonportable](https://github.com/ScoopInstaller/Nonportable) - Non-portable apps (may trigger UAC prompts).
|
||||
- [php](https://github.com/ScoopInstaller/PHP) - Installers for most versions of PHP.
|
||||
- [versions](https://github.com/ScoopInstaller/Versions) - Alternative versions of apps found in other buckets.
|
||||
|
||||
The `main` bucket is installed by default. You can make use of more buckets by typing:
|
||||
|
||||
```console
|
||||
scoop bucket add <name>
|
||||
```
|
||||
|
||||
For example, to add the `extras` bucket, type:
|
||||
|
||||
```console
|
||||
scoop bucket add extras
|
||||
```
|
||||
|
||||
You would be able to install apps from the `extras` bucket now.
|
||||
|
||||
## Other application buckets
|
||||
|
||||
Many other application buckets hosted on GitHub can be found on [ScoopSearch](https://scoop.sh/) or via [other search engines](https://rasa.github.io/scoop-directory/#other-search-engines).
|
||||
[]()
|
||||
|
||||
44
appveyor.yml
44
appveyor.yml
@@ -1,35 +1,17 @@
|
||||
version: "{build}-{branch}"
|
||||
|
||||
branches:
|
||||
except:
|
||||
- gh-pages
|
||||
build: false
|
||||
deploy: false
|
||||
clone_depth: 2
|
||||
image: Visual Studio 2022
|
||||
environment:
|
||||
matrix:
|
||||
- PowerShell: 5
|
||||
- PowerShell: 7
|
||||
matrix:
|
||||
fast_finish: true
|
||||
for:
|
||||
- matrix:
|
||||
only:
|
||||
- PowerShell: 5
|
||||
cache:
|
||||
- '%USERPROFILE%\Documents\WindowsPowerShell\Modules -> appveyor.yml, test\bin\*.ps1'
|
||||
- C:\projects\helpers -> appveyor.yml, test\bin\*.ps1
|
||||
install:
|
||||
- ps: .\test\bin\init.ps1
|
||||
test_script:
|
||||
- ps: .\test\bin\test.ps1
|
||||
- matrix:
|
||||
only:
|
||||
- PowerShell: 7
|
||||
cache:
|
||||
- '%USERPROFILE%\Documents\PowerShell\Modules -> appveyor.yml, test\bin\*.ps1'
|
||||
- C:\projects\helpers -> appveyor.yml, test\bin\*.ps1
|
||||
install:
|
||||
- pwsh: .\test\bin\init.ps1
|
||||
test_script:
|
||||
- pwsh: .\test\bin\test.ps1
|
||||
|
||||
init:
|
||||
- ps: (get-psprovider 'FileSystem').Home = $(pwd)
|
||||
- ps: "if($env:APPVEYOR_CHOCO_PESTER_OPTIONS -ne $null) { write-host -f yellow 'NOTE: customized `pester` installation is being used' }"
|
||||
- ps: choco install -y pester $env:APPVEYOR_CHOCO_PESTER_OPTIONS
|
||||
|
||||
build: off
|
||||
|
||||
test_script:
|
||||
- ps: $result = invoke-pester -path test/ -outputfile TestResults.xml -outputformat NUnitXML -passthru; $env:failedcount = $result.failedcount
|
||||
- ps: (new-object net.webclient).uploadfile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", (resolve-path ./TestResults.xml))
|
||||
- ps: if($env:failedcount -gt 0) { exit $env:failedcount }
|
||||
|
||||
257
bin/auto-pr.ps1
257
bin/auto-pr.ps1
@@ -1,222 +1,157 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Updates manifests and pushes them or creates pull-requests.
|
||||
.DESCRIPTION
|
||||
Updates manifests and pushes them directly to the origin branch or creates pull-requests for upstream.
|
||||
.PARAMETER Upstream
|
||||
Upstream repository with the target branch.
|
||||
Must be in format '<user>/<repo>:<branch>'
|
||||
.PARAMETER OriginBranch
|
||||
Origin (local) branch name.
|
||||
.PARAMETER App
|
||||
Manifest name to search.
|
||||
Placeholders are supported.
|
||||
.PARAMETER CommitMessageFormat
|
||||
The format of the commit message.
|
||||
<app> will be replaced with the file name of manifest.
|
||||
<version> will be replaced with the version of the latest manifest.
|
||||
.PARAMETER Dir
|
||||
The directory where to search for manifests.
|
||||
.PARAMETER Push
|
||||
Push updates directly to 'origin branch'.
|
||||
.PARAMETER Request
|
||||
Create pull-requests on 'upstream branch' for each update.
|
||||
.PARAMETER Help
|
||||
Print help to console.
|
||||
.PARAMETER SpecialSnowflakes
|
||||
An array of manifests, which should be updated all the time. (-ForceUpdate parameter to checkver)
|
||||
.PARAMETER SkipUpdated
|
||||
Updated manifests will not be shown.
|
||||
.PARAMETER ThrowError
|
||||
Throw error as exception instead of just printing it.
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT > .\bin\auto-pr.ps1 'someUsername/repository:branch' -Request
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT > .\bin\auto-pr.ps1 -Push
|
||||
Update all manifests inside 'bucket/' directory.
|
||||
#>
|
||||
# Usage: .\bin\auto-pr.ps1 [options]
|
||||
# Summary: Updates manifests and pushes them or creates pull-requests
|
||||
# Help: Updates manifests and pushes them to directly the master branch or creates pull-requests for upstream
|
||||
#
|
||||
# Options:
|
||||
# -p, --push push updates directly to 'origin master'
|
||||
# -r, --request create pull-requests on 'upstream master' for each update
|
||||
# -u, --upstream <upstream> upstream repository with target branch
|
||||
# only used if -r is set (default: lukesampson/scoop:master)
|
||||
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateScript( {
|
||||
if (!($_ -match '^(.*)\/(.*):(.*)$')) {
|
||||
throw 'Upstream must be in this format: <user>/<repo>:<branch>'
|
||||
}
|
||||
$true
|
||||
})]
|
||||
[String] $Upstream,
|
||||
[String] $OriginBranch = 'master',
|
||||
[String] $App = '*',
|
||||
[String] $CommitMessageFormat = '<app>: Update to version <version>',
|
||||
[ValidateScript( {
|
||||
if (!(Test-Path $_ -Type Container)) {
|
||||
throw "$_ is not a directory!"
|
||||
} else {
|
||||
$true
|
||||
}
|
||||
})]
|
||||
[String] $Dir,
|
||||
[Switch] $Push,
|
||||
[Switch] $Request,
|
||||
[Switch] $Help,
|
||||
[string[]] $SpecialSnowflakes,
|
||||
[Switch] $SkipUpdated,
|
||||
[Switch] $ThrowError
|
||||
[String]$upstream = "lukesampson/scoop:master",
|
||||
[String]$dir,
|
||||
[Switch]$push = $false,
|
||||
[Switch]$request = $false,
|
||||
[Switch]$help = $false
|
||||
)
|
||||
|
||||
. "$PSScriptRoot\..\lib\manifest.ps1"
|
||||
. "$PSScriptRoot\..\lib\json.ps1"
|
||||
if(!$dir) { $dir = "$psscriptroot\..\bucket" }
|
||||
$dir = resolve-path $dir
|
||||
|
||||
if ($App -ne '*' -and (Test-Path $App -PathType Leaf)) {
|
||||
$Dir = Split-Path $App
|
||||
} elseif ($Dir) {
|
||||
$Dir = Convert-Path $Dir
|
||||
} else {
|
||||
throw "'-Dir' parameter required if '-App' is not a filepath!"
|
||||
}
|
||||
. "$psscriptroot\..\lib\manifest.ps1"
|
||||
. "$psscriptroot\..\lib\json.ps1"
|
||||
. "$psscriptroot\..\lib\unix.ps1"
|
||||
|
||||
if ((!$Push -and !$Request) -or $Help) {
|
||||
Write-Host @'
|
||||
Usage: auto-pr.ps1 [OPTION]
|
||||
|
||||
Mandatory options:
|
||||
-p, -push push updates directly to 'origin branch'
|
||||
-r, -request create pull-requests on 'upstream branch' for each update
|
||||
|
||||
Optional options:
|
||||
-u, -upstream upstream repository with target branch
|
||||
-o, -originbranch origin (local) branch name
|
||||
-h, -help
|
||||
'@
|
||||
exit 0
|
||||
}
|
||||
|
||||
if ($IsLinux -or $IsMacOS) {
|
||||
if(is_unix) {
|
||||
if (!(which hub)) {
|
||||
Write-Host "Please install hub ('brew install hub' or visit: https://hub.github.com/)" -ForegroundColor Yellow
|
||||
Write-Host -f yellow "Please install hub ('brew install hub' or visit: https://hub.github.com/)"
|
||||
exit 1
|
||||
}
|
||||
} else {
|
||||
if (!(scoop which hub)) {
|
||||
Write-Host "Please install hub 'scoop install hub'" -ForegroundColor Yellow
|
||||
Write-Host -f yellow "Please install hub 'scoop install hub'"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
if ((!$push -and !$request) -or $help) {
|
||||
Write-Host ""
|
||||
Write-Host "Usage: auto-pr.ps1 [OPTION]"
|
||||
Write-Host ""
|
||||
Write-Host "Mandatory options:"
|
||||
Write-Host " -p, -push push updates directly to 'origin master'"
|
||||
Write-Host " -r, -request create pull-requests on 'upstream master' for each update"
|
||||
Write-Host ""
|
||||
Write-Host "Optional options:"
|
||||
Write-Host " -u, -upstream upstream repository with target branch"
|
||||
Write-Host " only used if -r is set (default: lukesampson/scoop:master)"
|
||||
Write-Host " -h, -help"
|
||||
Write-Host ""
|
||||
exit 0
|
||||
}
|
||||
|
||||
if(!($upstream -match "^(.*)\/(.*):(.*)$")) {
|
||||
Write-Host -f DarkRed "Upstream must have this format: <user>/<repo>:<branch>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
function execute($cmd) {
|
||||
Write-Host $cmd -ForegroundColor Green
|
||||
$output = Invoke-Command ([scriptblock]::Create($cmd))
|
||||
Write-Host -f Green $cmd
|
||||
$output = iex $cmd
|
||||
|
||||
if ($LASTEXITCODE -gt 0) {
|
||||
abort "^^^ Error! See above ^^^ (last command: $cmd)"
|
||||
if($LASTEXITCODE -gt 0) {
|
||||
Write-Host -f Red "^^^ Error! See above ^^^ (last command: $cmd)"
|
||||
exit 1
|
||||
}
|
||||
|
||||
return $output
|
||||
}
|
||||
|
||||
function pull_requests($json, [String] $app, [String] $upstream, [String] $manifest, [String] $commitMessage) {
|
||||
function pull_requests($json, [String]$app, [String]$upstream, [String]$manifest)
|
||||
{
|
||||
$version = $json.version
|
||||
$homepage = $json.homepage
|
||||
$branch = "manifest/$app-$version"
|
||||
|
||||
execute "hub checkout $OriginBranch"
|
||||
Write-Host "hub rev-parse --verify $branch" -ForegroundColor Green
|
||||
execute "hub checkout master"
|
||||
Write-Host -f Green "hub rev-parse --verify $branch"
|
||||
hub rev-parse --verify $branch
|
||||
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Host "Skipping update $app ($version) ..." -ForegroundColor Yellow
|
||||
if($LASTEXITCODE -eq 0) {
|
||||
Write-Host -f Yellow "Skipping update $app ($version) ..."
|
||||
return
|
||||
}
|
||||
|
||||
Write-Host "Creating update $app ($version) ..." -ForegroundColor DarkCyan
|
||||
Write-Host -f DarkCyan "Creating update $app ($version) ..."
|
||||
execute "hub checkout -b $branch"
|
||||
execute "hub add $manifest"
|
||||
execute "hub commit -m '$commitMessage"
|
||||
Write-Host "Pushing update $app ($version) ..." -ForegroundColor DarkCyan
|
||||
execute "hub commit -m 'Update $app to version $version'"
|
||||
Write-Host -f DarkCyan "Pushing update $app ($version) ..."
|
||||
execute "hub push origin $branch"
|
||||
|
||||
if ($LASTEXITCODE -gt 0) {
|
||||
error "Push failed! (hub push origin $branch)"
|
||||
execute 'hub reset'
|
||||
if($LASTEXITCODE -gt 0) {
|
||||
Write-Host -f DarkRed "Push failed! (hub push origin $branch)"
|
||||
execute "hub reset"
|
||||
return
|
||||
}
|
||||
|
||||
Start-Sleep 1
|
||||
Write-Host "Pull-Request update $app ($version) ..." -ForegroundColor DarkCyan
|
||||
Write-Host "hub pull-request -m '<msg>' -b '$upstream' -h '$branch'" -ForegroundColor Green
|
||||
|
||||
$msg = @"
|
||||
$commitMessage
|
||||
|
||||
Hello lovely humans,
|
||||
a new version of [$app]($homepage) is available.
|
||||
|
||||
| State | Update :rocket: |
|
||||
| :---------- | :-------------- |
|
||||
| New version | $version |
|
||||
"@
|
||||
|
||||
hub pull-request -m "$msg" -b "$upstream" -h "$branch"
|
||||
if ($LASTEXITCODE -gt 0) {
|
||||
execute 'hub reset'
|
||||
abort "Pull Request failed! (hub pull-request -m '$commitMessage' -b '$upstream' -h '$branch')"
|
||||
Write-Host -f DarkCyan "Pull-Request update $app ($version) ..."
|
||||
Write-Host -f green "hub pull-request -m '<msg>' -b '$upstream' -h '$branch'"
|
||||
$msg = "Update $app to version $version`n`n"
|
||||
$msg += "Hello lovely humans,`n"
|
||||
$msg += "a new version of [$app]($homepage) is available.`n"
|
||||
$msg += "<table>"
|
||||
$msg += "<tr><th align=left>State</th><td>Update :rocket:</td></tr>"
|
||||
$msg += "<tr><th align=left>New version</td><td>$version</td></tr>"
|
||||
$msg += "</table>"
|
||||
hub pull-request -m "$msg" -b '$upstream' -h '$branch'
|
||||
if($LASTEXITCODE -gt 0) {
|
||||
Write-Host -f DarkRed "Pull Request failed! (hub pull-request -m 'Update $app to version $version' -b '$upstream' -h '$branch')"
|
||||
execute "hub reset"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host 'Updating ...' -ForegroundColor DarkCyan
|
||||
if ($Push) {
|
||||
execute "hub pull origin $OriginBranch"
|
||||
execute "hub checkout $OriginBranch"
|
||||
Write-Host -f DarkCyan "Updating ..."
|
||||
if($push -eq $true) {
|
||||
execute("hub pull origin master")
|
||||
execute "hub checkout master"
|
||||
} else {
|
||||
execute "hub pull upstream $OriginBranch"
|
||||
execute "hub push origin $OriginBranch"
|
||||
execute("hub pull upstream master")
|
||||
execute("hub push origin master")
|
||||
}
|
||||
|
||||
. "$PSScriptRoot\checkver.ps1" -App $App -Dir $Dir -Update -SkipUpdated:$SkipUpdated -ThrowError:$ThrowError
|
||||
if ($SpecialSnowflakes) {
|
||||
Write-Host "Forcing update on our special snowflakes: $($SpecialSnowflakes -join ',')" -ForegroundColor DarkCyan
|
||||
$SpecialSnowflakes -split ',' | ForEach-Object {
|
||||
. "$PSScriptRoot\checkver.ps1" $_ -Dir $Dir -ForceUpdate -ThrowError:$ThrowError
|
||||
}
|
||||
}
|
||||
. "$psscriptroot\checkver.ps1" * -update -dir $dir
|
||||
|
||||
hub diff --name-only | ForEach-Object {
|
||||
hub diff --name-only | % {
|
||||
$manifest = $_
|
||||
if (!$manifest.EndsWith('.json')) {
|
||||
if(!$manifest.EndsWith(".json")) {
|
||||
return
|
||||
}
|
||||
|
||||
$app = ([System.IO.Path]::GetFileNameWithoutExtension($manifest))
|
||||
$json = parse_json $manifest
|
||||
if (!$json.version) {
|
||||
error "Invalid manifest: $manifest ..."
|
||||
if(!$json.version) {
|
||||
Write-Host -f Red "Invalid manifest: $manifest ..."
|
||||
return
|
||||
}
|
||||
$version = $json.version
|
||||
$CommitMessage = $CommitMessageFormat -replace '<app>',$app -replace '<version>',$version
|
||||
if ($Push) {
|
||||
Write-Host "Creating update $app ($version) ..." -ForegroundColor DarkCyan
|
||||
execute "hub add $manifest"
|
||||
|
||||
# detect if file was staged, because it's not when only LF or CRLF have changed
|
||||
$status = execute 'hub status --porcelain -uno'
|
||||
$status = $status | Where-Object { $_ -match "M\s{2}.*$app.json" }
|
||||
if ($status -and $status.StartsWith('M ') -and $status.EndsWith("$app.json")) {
|
||||
execute "hub commit -m '$commitMessage'"
|
||||
} else {
|
||||
Write-Host "Skipping $app because only LF/CRLF changes were detected ..." -ForegroundColor Yellow
|
||||
}
|
||||
if($push -eq $true) {
|
||||
Write-Host -f DarkCyan "Creating update $app ($version) ..."
|
||||
execute "hub add $manifest"
|
||||
execute "hub commit -m 'Update $app to version $version'"
|
||||
} else {
|
||||
pull_requests $json $app $Upstream $manifest $CommitMessage
|
||||
pull_requests $json $app $upstream $manifest
|
||||
}
|
||||
}
|
||||
|
||||
if ($Push) {
|
||||
Write-Host 'Pushing updates ...' -ForegroundColor DarkCyan
|
||||
execute "hub push origin $OriginBranch"
|
||||
if($push -eq $true) {
|
||||
Write-Host -f DarkCyan "Pushing updates ..."
|
||||
execute "hub push origin master"
|
||||
} else {
|
||||
Write-Host "Returning to $OriginBranch branch and removing unstaged files ..." -ForegroundColor DarkCyan
|
||||
execute "hub checkout -f $OriginBranch"
|
||||
Write-Host -f DarkCyan "Returning to master branch and removing unstaged files ..."
|
||||
execute "hub checkout -f master"
|
||||
}
|
||||
|
||||
execute 'hub reset --hard'
|
||||
execute "hub reset"
|
||||
|
||||
@@ -1,190 +0,0 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Check if ALL urls inside manifest have correct hashes.
|
||||
.PARAMETER App
|
||||
Manifest to be checked.
|
||||
Wildcard is supported.
|
||||
.PARAMETER Dir
|
||||
Where to search for manifest(s).
|
||||
.PARAMETER Update
|
||||
When there are mismatched hashes, manifest will be updated.
|
||||
.PARAMETER ForceUpdate
|
||||
Manifest will be updated all the time. Not only when there are mismatched hashes.
|
||||
.PARAMETER SkipCorrect
|
||||
Manifests without mismatch will not be shown.
|
||||
.PARAMETER UseCache
|
||||
Downloaded files will not be deleted after script finish.
|
||||
Should not be used, because check should be used for downloading actual version of file (as normal user, not finding in some document from vendors, which could be damaged / wrong (Example: Slack@3.3.1 ScoopInstaller/Extras#1192)), not some previously downloaded.
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT> .\bin\checkhashes.ps1
|
||||
Check all manifests for hash mismatch.
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT> .\bin\checkhashes.ps1 MANIFEST -Update
|
||||
Check MANIFEST and Update if there are some wrong hashes.
|
||||
#>
|
||||
param(
|
||||
[String] $App = '*',
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateScript( {
|
||||
if (!(Test-Path $_ -Type Container)) {
|
||||
throw "$_ is not a directory!"
|
||||
} else {
|
||||
$true
|
||||
}
|
||||
})]
|
||||
[String] $Dir,
|
||||
[Switch] $Update,
|
||||
[Switch] $ForceUpdate,
|
||||
[Switch] $SkipCorrect,
|
||||
[Alias('k')]
|
||||
[Switch] $UseCache
|
||||
)
|
||||
|
||||
. "$PSScriptRoot\..\lib\core.ps1"
|
||||
. "$PSScriptRoot\..\lib\manifest.ps1"
|
||||
. "$PSScriptRoot\..\lib\buckets.ps1"
|
||||
. "$PSScriptRoot\..\lib\autoupdate.ps1"
|
||||
. "$PSScriptRoot\..\lib\json.ps1"
|
||||
. "$PSScriptRoot\..\lib\versions.ps1"
|
||||
. "$PSScriptRoot\..\lib\install.ps1"
|
||||
|
||||
$Dir = Convert-Path $Dir
|
||||
if ($ForceUpdate) { $Update = $true }
|
||||
# Cleanup
|
||||
if (!$UseCache) { Remove-Item "$cachedir\*HASH_CHECK*" -Force }
|
||||
|
||||
function err ([String] $name, [String[]] $message) {
|
||||
Write-Host "$name`: " -ForegroundColor Red -NoNewline
|
||||
Write-Host ($message -join "`r`n") -ForegroundColor Red
|
||||
}
|
||||
|
||||
$MANIFESTS = @()
|
||||
foreach ($single in Get-ChildItem $Dir -Filter "$App.json" -Recurse) {
|
||||
$name = $single.BaseName
|
||||
$file = $single.FullName
|
||||
$manifest = parse_json $file
|
||||
|
||||
# Skip nighly manifests, since their hash validation is skipped
|
||||
if ($manifest.version -eq 'nightly') { continue }
|
||||
|
||||
$urls = @()
|
||||
$hashes = @()
|
||||
|
||||
if ($manifest.url) {
|
||||
$manifest.url | ForEach-Object { $urls += $_ }
|
||||
$manifest.hash | ForEach-Object { $hashes += $_ }
|
||||
} elseif ($manifest.architecture) {
|
||||
# First handle 64bit
|
||||
script:url $manifest '64bit' | ForEach-Object { $urls += $_ }
|
||||
hash $manifest '64bit' | ForEach-Object { $hashes += $_ }
|
||||
script:url $manifest '32bit' | ForEach-Object { $urls += $_ }
|
||||
hash $manifest '32bit' | ForEach-Object { $hashes += $_ }
|
||||
script:url $manifest 'arm64' | ForEach-Object { $urls += $_ }
|
||||
hash $manifest 'arm64' | ForEach-Object { $hashes += $_ }
|
||||
} else {
|
||||
err $name 'Manifest does not contain URL property.'
|
||||
continue
|
||||
}
|
||||
|
||||
# Number of URLS and Hashes is different
|
||||
if ($urls.Length -ne $hashes.Length) {
|
||||
err $name 'URLS and hashes count mismatch.'
|
||||
continue
|
||||
}
|
||||
|
||||
$MANIFESTS += @{
|
||||
app = $name
|
||||
file = $file
|
||||
manifest = $manifest
|
||||
urls = $urls
|
||||
hashes = $hashes
|
||||
}
|
||||
}
|
||||
|
||||
# clear any existing events
|
||||
Get-Event | ForEach-Object { Remove-Event $_.SourceIdentifier }
|
||||
|
||||
foreach ($current in $MANIFESTS) {
|
||||
$count = 0
|
||||
# Array of indexes mismatched hashes.
|
||||
$mismatched = @()
|
||||
# Array of computed hashes
|
||||
$actuals = @()
|
||||
|
||||
$current.urls | ForEach-Object {
|
||||
$algorithm, $expected = get_hash $current.hashes[$count]
|
||||
if ($UseCache) {
|
||||
$version = $current.manifest.version
|
||||
} else {
|
||||
$version = 'HASH_CHECK'
|
||||
}
|
||||
|
||||
Invoke-CachedDownload $current.app $version $_ $null $null -use_cache:$UseCache
|
||||
|
||||
$to_check = cache_path $current.app $version $_
|
||||
$actual_hash = (Get-FileHash -Path $to_check -Algorithm $algorithm).Hash.ToLower()
|
||||
|
||||
# Append type of algorithm to both expected and actual if it's not sha256
|
||||
if ($algorithm -ne 'sha256') {
|
||||
$actual_hash = "$algorithm`:$actual_hash"
|
||||
$expected = "$algorithm`:$expected"
|
||||
}
|
||||
|
||||
$actuals += $actual_hash
|
||||
if ($actual_hash -ne $expected) {
|
||||
$mismatched += $count
|
||||
}
|
||||
$count++
|
||||
}
|
||||
|
||||
if ($mismatched.Length -eq 0 ) {
|
||||
if (!$SkipCorrect) {
|
||||
Write-Host "$($current.app): " -NoNewline
|
||||
Write-Host 'OK' -ForegroundColor Green
|
||||
}
|
||||
} else {
|
||||
Write-Host "$($current.app): " -NoNewline
|
||||
Write-Host 'Mismatch found ' -ForegroundColor Red
|
||||
$mismatched | ForEach-Object {
|
||||
$file = cache_path $current.app $version $current.urls[$_]
|
||||
Write-Host "`tURL:`t`t$($current.urls[$_])"
|
||||
if (Test-Path $file) {
|
||||
Write-Host "`tFirst bytes:`t$((get_magic_bytes_pretty $file ' ').ToUpper())"
|
||||
}
|
||||
Write-Host "`tExpected:`t$($current.hashes[$_])" -ForegroundColor Green
|
||||
Write-Host "`tActual:`t`t$($actuals[$_])" -ForegroundColor Red
|
||||
}
|
||||
}
|
||||
|
||||
if ($Update) {
|
||||
if ($current.manifest.url -and $current.manifest.hash) {
|
||||
$current.manifest.hash = $actuals
|
||||
} else {
|
||||
$platforms = ($current.manifest.architecture | Get-Member -MemberType NoteProperty).Name
|
||||
# Defaults to zero, don't know, which architecture is available
|
||||
$64bit_count = 0
|
||||
$32bit_count = 0
|
||||
$arm64_count = 0
|
||||
|
||||
# 64bit is get, donwloaded and added first
|
||||
if ($platforms.Contains('64bit')) {
|
||||
$64bit_count = $current.manifest.architecture.'64bit'.hash.Count
|
||||
$current.manifest.architecture.'64bit'.hash = $actuals[0..($64bit_count - 1)]
|
||||
}
|
||||
if ($platforms.Contains('32bit')) {
|
||||
$32bit_count = $current.manifest.architecture.'32bit'.hash.Count
|
||||
$current.manifest.architecture.'32bit'.hash = $actuals[($64bit_count)..($64bit_count + $32bit_count - 1)]
|
||||
}
|
||||
if ($platforms.Contains('arm64')) {
|
||||
$arm64_count = $current.manifest.architecture.'arm64'.hash.Count
|
||||
$current.manifest.architecture.'arm64'.hash = $actuals[($64bit_count + $32bit_count)..($64bit_count + $32bit_count + $arm64_count - 1)]
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "Writing updated $($current.app) manifest" -ForegroundColor DarkGreen
|
||||
|
||||
$current.manifest = $current.manifest | ConvertToPrettyJson
|
||||
$path = Convert-Path $current.file
|
||||
[System.IO.File]::WriteAllLines($path, $current.manifest)
|
||||
}
|
||||
}
|
||||
@@ -1,141 +1,115 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
List manifests which do not have valid URLs.
|
||||
.PARAMETER App
|
||||
Manifest name to search.
|
||||
Placeholder is supported.
|
||||
.PARAMETER Dir
|
||||
Where to search for manifest(s).
|
||||
.PARAMETER Timeout
|
||||
How long (seconds) the request can be pending before it times out.
|
||||
.PARAMETER SkipValid
|
||||
Manifests will all valid URLs will not be shown.
|
||||
#>
|
||||
# list manifests which do not specify a checkver regex
|
||||
param(
|
||||
[String] $App = '*',
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateScript( {
|
||||
if (!(Test-Path $_ -Type Container)) {
|
||||
throw "$_ is not a directory!"
|
||||
} else {
|
||||
$true
|
||||
}
|
||||
})]
|
||||
[String] $Dir,
|
||||
[Int] $Timeout = 5,
|
||||
[Switch] $SkipValid
|
||||
[String]$app,
|
||||
[String]$dir,
|
||||
[Int]$timeout = 5
|
||||
)
|
||||
|
||||
. "$PSScriptRoot\..\lib\core.ps1"
|
||||
. "$PSScriptRoot\..\lib\manifest.ps1"
|
||||
. "$PSScriptRoot\..\lib\install.ps1"
|
||||
if(!$dir) { $dir = "$psscriptroot\..\bucket" }
|
||||
$dir = resolve-path $dir
|
||||
|
||||
$Dir = Convert-Path $Dir
|
||||
$Queue = @()
|
||||
$search = "*"
|
||||
if($app) { $search = $app }
|
||||
|
||||
Get-ChildItem $Dir -Filter "$App.json" -Recurse | ForEach-Object {
|
||||
$manifest = parse_json $_.FullName
|
||||
$Queue += , @($_.BaseName, $manifest)
|
||||
. "$psscriptroot\..\lib\core.ps1"
|
||||
. "$psscriptroot\..\lib\manifest.ps1"
|
||||
. "$psscriptroot\..\lib\install.ps1"
|
||||
|
||||
if(!$dir) { $dir = "$psscriptroot\..\bucket" }
|
||||
$dir = resolve-path $dir
|
||||
|
||||
# get apps to check
|
||||
$queue = @()
|
||||
gci $dir "$search.json" | % {
|
||||
$manifest = parse_json "$dir\$_"
|
||||
$queue += ,@($_, $manifest)
|
||||
}
|
||||
|
||||
Write-Host '[' -NoNewLine
|
||||
Write-Host 'U' -NoNewLine -ForegroundColor Cyan
|
||||
Write-Host ']RLs'
|
||||
Write-Host ' | [' -NoNewLine
|
||||
Write-Host 'O' -NoNewLine -ForegroundColor Green
|
||||
Write-Host ']kay'
|
||||
Write-Host ' | | [' -NoNewLine
|
||||
Write-Host 'F' -NoNewLine -ForegroundColor Red
|
||||
Write-Host ']ailed'
|
||||
Write-Host ' | | |'
|
||||
$original = use_any_https_protocol
|
||||
|
||||
function test_dl([String] $url, $cookies) {
|
||||
# Trim renaming suffix, prevent getting 40x response
|
||||
$url = ($url -split '#/')[0]
|
||||
write-host "[" -nonewline
|
||||
write-host -f cyan "U" -nonewline
|
||||
write-host "]RLs"
|
||||
write-host " | [" -nonewline
|
||||
write-host -f green "O" -nonewline
|
||||
write-host "]kay"
|
||||
write-host " | | [" -nonewline
|
||||
write-host -f red "F" -nonewline
|
||||
write-host "]ailed"
|
||||
write-host " | | |"
|
||||
|
||||
$wreq = [Net.WebRequest]::Create($url)
|
||||
$wreq.Timeout = $Timeout * 1000
|
||||
if ($wreq -is [Net.HttpWebRequest]) {
|
||||
$wreq.UserAgent = Get-UserAgent
|
||||
$wreq.Referer = strip_filename $url
|
||||
if ($cookies) {
|
||||
$wreq.Headers.Add('Cookie', (cookie_header $cookies))
|
||||
function test_dl($url, $cookies) {
|
||||
$wreq = [net.webrequest]::create($url)
|
||||
$wreq.timeout = $timeout * 1000
|
||||
if($wreq -is [net.httpwebrequest]) {
|
||||
$wreq.useragent = 'Scoop/1.0'
|
||||
$wreq.referer = strip_filename $url
|
||||
if($cookies) {
|
||||
$wreq.headers.add('Cookie', (cookie_header $cookies))
|
||||
}
|
||||
}
|
||||
|
||||
get_config PRIVATE_HOSTS | Where-Object { $_ -ne $null -and $url -match $_.match } | ForEach-Object {
|
||||
(ConvertFrom-StringData -StringData $_.Headers).GetEnumerator() | ForEach-Object {
|
||||
$wreq.Headers[$_.Key] = $_.Value
|
||||
}
|
||||
}
|
||||
|
||||
$wres = $null
|
||||
try {
|
||||
$wres = $wreq.GetResponse()
|
||||
|
||||
return $url, $wres.StatusCode, $null
|
||||
$wres = $wreq.getresponse()
|
||||
return $url, $wres.statuscode, $null
|
||||
} catch {
|
||||
$e = $_.Exception
|
||||
if ($e.InnerException) { $e = $e.InnerException }
|
||||
|
||||
return $url, 'Error', $e.Message
|
||||
$e = $_.exception
|
||||
if($e.innerexception) { $e = $e.innerexception }
|
||||
return $url, "Error", $e.message
|
||||
} finally {
|
||||
if ($null -ne $wres -and $wres -isnot [Net.FtpWebResponse]) {
|
||||
$wres.Close()
|
||||
if($wres -ne $null -and $wres -isnot [net.ftpwebresponse]) {
|
||||
$wres.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($man in $Queue) {
|
||||
$name, $manifest = $man
|
||||
$queue | % {
|
||||
$name, $manifest = $_
|
||||
$urls = @()
|
||||
$ok = 0
|
||||
$failed = 0
|
||||
$errors = @()
|
||||
|
||||
if ($manifest.url) {
|
||||
$manifest.url | ForEach-Object { $urls += $_ }
|
||||
if($manifest.url) {
|
||||
$manifest.url | % { $urls += $_ }
|
||||
} else {
|
||||
script:url $manifest '64bit' | ForEach-Object { $urls += $_ }
|
||||
script:url $manifest '32bit' | ForEach-Object { $urls += $_ }
|
||||
script:url $manifest 'arm64' | ForEach-Object { $urls += $_ }
|
||||
url $manifest "64bit" | % { $urls += $_ }
|
||||
url $manifest "32bit" | % { $urls += $_ }
|
||||
}
|
||||
|
||||
$urls | ForEach-Object {
|
||||
$urls | % {
|
||||
$url, $status, $msg = test_dl $_ $manifest.cookie
|
||||
if ($msg) { $errors += "$msg ($url)" }
|
||||
if ($status -eq 'OK' -or $status -eq 'OpeningData') { $ok += 1 } else { $failed += 1 }
|
||||
if($msg) { $errors += "$msg ($url)" }
|
||||
if($status -eq "OK" -or $status -eq "OpeningData") { $ok += 1 } else { $failed += 1 }
|
||||
}
|
||||
|
||||
if (($ok -eq $urls.Length) -and $SkipValid) { continue }
|
||||
write-host "[" -nonewline
|
||||
write-host -f cyan -nonewline $urls.length
|
||||
write-host "]" -nonewline
|
||||
|
||||
# URLS
|
||||
Write-Host '[' -NoNewLine
|
||||
Write-Host $urls.Length -NoNewLine -ForegroundColor Cyan
|
||||
Write-Host ']' -NoNewLine
|
||||
|
||||
# Okay
|
||||
Write-Host '[' -NoNewLine
|
||||
if ($ok -eq $urls.Length) {
|
||||
Write-Host $ok -NoNewLine -ForegroundColor Green
|
||||
} elseif ($ok -eq 0) {
|
||||
Write-Host $ok -NoNewLine -ForegroundColor Red
|
||||
write-host "[" -nonewline
|
||||
if($ok -eq $urls.length) {
|
||||
write-host -f green -nonewline $ok
|
||||
} elseif($ok -eq 0) {
|
||||
write-host -f red -nonewline $ok
|
||||
} else {
|
||||
Write-Host $ok -NoNewLine -ForegroundColor Yellow
|
||||
write-host -f yellow -nonewline $ok
|
||||
}
|
||||
Write-Host ']' -NoNewLine
|
||||
write-host "]" -nonewline
|
||||
|
||||
# Failed
|
||||
Write-Host '[' -NoNewLine
|
||||
if ($failed -eq 0) {
|
||||
Write-Host $failed -NoNewLine -ForegroundColor Green
|
||||
write-host "[" -nonewline
|
||||
if($failed -eq 0) {
|
||||
write-host -f green -nonewline $failed
|
||||
} else {
|
||||
Write-Host $failed -NoNewLine -ForegroundColor Red
|
||||
write-host -f red -nonewline $failed
|
||||
}
|
||||
Write-Host '] ' -NoNewLine
|
||||
Write-Host $name
|
||||
write-host "] " -nonewline
|
||||
write-host (strip_ext $name)
|
||||
|
||||
$errors | ForEach-Object {
|
||||
Write-Host " > $_" -ForegroundColor DarkRed
|
||||
$errors | % {
|
||||
write-host -f darkred " > $_"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
set_https_protocols $original
|
||||
|
||||
515
bin/checkver.ps1
515
bin/checkver.ps1
@@ -1,420 +1,217 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Check manifest for a newer version.
|
||||
.DESCRIPTION
|
||||
Checks websites for newer versions using an (optional) regular expression defined in the manifest.
|
||||
.PARAMETER App
|
||||
Manifest name to search.
|
||||
Placeholders are supported.
|
||||
.PARAMETER Dir
|
||||
Where to search for manifest(s).
|
||||
.PARAMETER Update
|
||||
Update given manifest
|
||||
.PARAMETER ForceUpdate
|
||||
Update given manifest(s) even when there is no new version.
|
||||
Useful for hash updates.
|
||||
.PARAMETER SkipUpdated
|
||||
Updated manifests will not be shown.
|
||||
.PARAMETER Version
|
||||
Update manifest to specific version.
|
||||
.PARAMETER ThrowError
|
||||
Throw error as exception instead of just printing it.
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT > .\bin\checkver.ps1
|
||||
Check all manifest inside default directory.
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT > .\bin\checkver.ps1 -SkipUpdated
|
||||
Check all manifest inside default directory (list only outdated manifests).
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT > .\bin\checkver.ps1 -Update
|
||||
Check all manifests and update All outdated manifests.
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT > .\bin\checkver.ps1 APP
|
||||
Check manifest APP.json inside default directory.
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT > .\bin\checkver.ps1 APP -Update
|
||||
Check manifest APP.json and update, if there is newer version.
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT > .\bin\checkver.ps1 APP -ForceUpdate
|
||||
Check manifest APP.json and update, even if there is no new version.
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT > .\bin\checkver.ps1 APP -Update -Version VER
|
||||
Check manifest APP.json and update, using version VER
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT > .\bin\checkver.ps1 APP DIR
|
||||
Check manifest APP.json inside ./DIR directory.
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT > .\bin\checkver.ps1 -Dir DIR
|
||||
Check all manifests inside ./DIR directory.
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT > .\bin\checkver.ps1 APP DIR -Update
|
||||
Check manifest APP.json inside ./DIR directory and update if there is newer version.
|
||||
#>
|
||||
# checks websites for newer versions using an (optional) regular expression defined in the manifest
|
||||
# use $dir to specify a manifest directory to check from, otherwise ./bucket is used
|
||||
param(
|
||||
[String] $App = '*',
|
||||
[ValidateScript( {
|
||||
if (!(Test-Path $_ -Type Container)) {
|
||||
throw "$_ is not a directory!"
|
||||
} else {
|
||||
$true
|
||||
}
|
||||
})]
|
||||
[String] $Dir,
|
||||
[Switch] $Update,
|
||||
[Switch] $ForceUpdate,
|
||||
[Switch] $SkipUpdated,
|
||||
[String] $Version = '',
|
||||
[Switch] $ThrowError
|
||||
[String]$app,
|
||||
[String]$dir,
|
||||
[Switch]$update = $false,
|
||||
[Switch]$forceUpdate = $false
|
||||
)
|
||||
|
||||
. "$PSScriptRoot\..\lib\core.ps1"
|
||||
. "$PSScriptRoot\..\lib\autoupdate.ps1"
|
||||
. "$PSScriptRoot\..\lib\manifest.ps1"
|
||||
. "$PSScriptRoot\..\lib\buckets.ps1"
|
||||
. "$PSScriptRoot\..\lib\json.ps1"
|
||||
. "$PSScriptRoot\..\lib\versions.ps1"
|
||||
. "$PSScriptRoot\..\lib\install.ps1" # needed for hash generation
|
||||
|
||||
if ($App -ne '*' -and (Test-Path $App -PathType Leaf)) {
|
||||
$Dir = Split-Path $App
|
||||
$files = Get-ChildItem $Dir -Filter (Split-Path $App -Leaf)
|
||||
} elseif ($Dir) {
|
||||
$Dir = Convert-Path $Dir
|
||||
$files = Get-ChildItem $Dir -Filter "$App.json" -Recurse
|
||||
} else {
|
||||
throw "'-Dir' parameter required if '-App' is not a filepath!"
|
||||
if (!$app -and $update) {
|
||||
# While developing the feature we only allow specific updates
|
||||
Write-Host "[ERROR] AUTOUPDATE CAN ONLY BE USED WITH A APP SPECIFIED" -f DarkRed
|
||||
exit
|
||||
}
|
||||
|
||||
$GitHubToken = Get-GitHubToken
|
||||
. "$psscriptroot\..\lib\core.ps1"
|
||||
. "$psscriptroot\..\lib\manifest.ps1"
|
||||
. "$psscriptroot\..\lib\config.ps1"
|
||||
. "$psscriptroot\..\lib\buckets.ps1"
|
||||
. "$psscriptroot\..\lib\autoupdate.ps1"
|
||||
. "$psscriptroot\..\lib\json.ps1"
|
||||
. "$psscriptroot\..\lib\versions.ps1"
|
||||
. "$psscriptroot\..\lib\install.ps1" # needed for hash generation
|
||||
. "$psscriptroot\..\lib\unix.ps1"
|
||||
|
||||
# don't use $Version with $App = '*'
|
||||
if ($App -eq '*' -and $Version -ne '') {
|
||||
throw "Don't use '-Version' with '-App *'!"
|
||||
}
|
||||
if(!$dir) { $dir = "$psscriptroot\..\bucket" }
|
||||
$dir = resolve-path $dir
|
||||
|
||||
$search = "*"
|
||||
if($app) { $search = $app }
|
||||
|
||||
# get apps to check
|
||||
$Queue = @()
|
||||
$json = ''
|
||||
$files | ForEach-Object {
|
||||
$file = $_.FullName
|
||||
$json = parse_json $file
|
||||
if ($json.checkver) {
|
||||
$Queue += , @($_.BaseName, $json, $file)
|
||||
$queue = @()
|
||||
gci $dir "$search.json" | % {
|
||||
$json = parse_json "$dir\$_"
|
||||
if($json.checkver) {
|
||||
$queue += ,@($_, $json)
|
||||
}
|
||||
}
|
||||
|
||||
# clear any existing events
|
||||
Get-Event | Remove-Event
|
||||
Get-EventSubscriber | Unregister-Event
|
||||
get-event | % {
|
||||
remove-event $_.sourceidentifier
|
||||
}
|
||||
|
||||
$original = use_any_https_protocol
|
||||
|
||||
# start all downloads
|
||||
$Queue | ForEach-Object {
|
||||
$name, $json, $file = $_
|
||||
$queue | % {
|
||||
$wc = new-object net.webclient
|
||||
$wc.Headers.Add("user-agent", "Scoop/1.0 (+http://scoop.sh/) (Windows NT 6.1; WOW64)")
|
||||
register-objectevent $wc downloadstringcompleted -ea stop | out-null
|
||||
|
||||
$substitutions = Get-VersionSubstitution $json.version # 'autoupdate.ps1'
|
||||
$name, $json = $_
|
||||
|
||||
$wc = New-Object Net.Webclient
|
||||
if ($json.checkver.useragent) {
|
||||
$wc.Headers.Add('User-Agent', (substitute $json.checkver.useragent $substitutions))
|
||||
} else {
|
||||
$wc.Headers.Add('User-Agent', (Get-UserAgent))
|
||||
}
|
||||
Register-ObjectEvent $wc downloadDataCompleted -ErrorAction Stop | Out-Null
|
||||
$githubRegex = "\/releases\/tag\/(?:v)?([\d.]+)"
|
||||
|
||||
# Not Specified
|
||||
if ($json.checkver.url) {
|
||||
$url = $json.homepage
|
||||
if($json.checkver.url) {
|
||||
$url = $json.checkver.url
|
||||
} else {
|
||||
$url = $json.homepage
|
||||
}
|
||||
$regex = ""
|
||||
$jsonpath = ""
|
||||
|
||||
if ($json.checkver.re) {
|
||||
$regex = $json.checkver.re
|
||||
} elseif ($json.checkver.regex) {
|
||||
$regex = $json.checkver.regex
|
||||
} else {
|
||||
$regex = ''
|
||||
}
|
||||
|
||||
$jsonpath = ''
|
||||
$xpath = ''
|
||||
$replace = ''
|
||||
$useGithubAPI = $false
|
||||
|
||||
# GitHub
|
||||
if ($regex) {
|
||||
$githubRegex = $regex
|
||||
} else {
|
||||
$githubRegex = '/releases/tag/(?:v|V)?([\d.]+)'
|
||||
}
|
||||
if ($json.checkver -eq 'github') {
|
||||
if (!$json.homepage.StartsWith('https://github.com/')) {
|
||||
error "$name checkver expects the homepage to be a github repository"
|
||||
if ($json.checkver -eq "github") {
|
||||
if (!$json.homepage.StartsWith("https://github.com/")) {
|
||||
write-host "ERROR: $name checkver expects the homepage to be a github repository" -f DarkYellow
|
||||
}
|
||||
$url = $json.homepage.TrimEnd('/') + '/releases/latest'
|
||||
$url = $json.homepage + "/releases/latest"
|
||||
$regex = $githubRegex
|
||||
$useGithubAPI = $true
|
||||
}
|
||||
|
||||
if ($json.checkver.github) {
|
||||
$url = $json.checkver.github.TrimEnd('/') + '/releases/latest'
|
||||
$url = $json.checkver.github + "/releases/latest"
|
||||
$regex = $githubRegex
|
||||
if ($json.checkver.PSObject.Properties.Count -eq 1) { $useGithubAPI = $true }
|
||||
}
|
||||
|
||||
# SourceForge
|
||||
if ($regex) {
|
||||
$sourceforgeRegex = $regex
|
||||
} else {
|
||||
$sourceforgeRegex = '(?!\.)([\d.]+)(?<=\d)'
|
||||
}
|
||||
if ($json.checkver -eq 'sourceforge') {
|
||||
if ($json.homepage -match '//(sourceforge|sf)\.net/projects/(?<project>[^/]+)(/files/(?<path>[^/]+))?|//(?<project>[^.]+)\.(sourceforge\.(net|io)|sf\.net)') {
|
||||
$project = $Matches['project']
|
||||
$path = $Matches['path']
|
||||
} else {
|
||||
$project = strip_ext $name
|
||||
}
|
||||
$url = "https://sourceforge.net/projects/$project/rss"
|
||||
if ($path) {
|
||||
$url = $url + '?path=/' + $path.TrimStart('/')
|
||||
}
|
||||
$regex = "CDATA\[/$path/.*?$sourceforgeRegex.*?\]".Replace('//', '/')
|
||||
}
|
||||
if ($json.checkver.sourceforge) {
|
||||
if ($json.checkver.sourceforge -is [System.String] -and $json.checkver.sourceforge -match '(?<project>[\w-]*)(/(?<path>.*))?') {
|
||||
$project = $Matches['project']
|
||||
$path = $Matches['path']
|
||||
} else {
|
||||
$project = $json.checkver.sourceforge.project
|
||||
$path = $json.checkver.sourceforge.path
|
||||
}
|
||||
$url = "https://sourceforge.net/projects/$project/rss"
|
||||
if ($path) {
|
||||
$url = $url + '?path=/' + $path.TrimStart('/')
|
||||
}
|
||||
$regex = "CDATA\[/$path/.*?$sourceforgeRegex.*?\]".Replace('//', '/')
|
||||
if($json.checkver.re) {
|
||||
$regex = $json.checkver.re
|
||||
}
|
||||
|
||||
if ($json.checkver.jp) {
|
||||
if($json.checkver.jp) {
|
||||
$jsonpath = $json.checkver.jp
|
||||
}
|
||||
if ($json.checkver.jsonpath) {
|
||||
$jsonpath = $json.checkver.jsonpath
|
||||
}
|
||||
if ($json.checkver.xpath) {
|
||||
$xpath = $json.checkver.xpath
|
||||
}
|
||||
|
||||
if ($json.checkver.replace -is [System.String]) { # If `checkver` is [System.String], it has a method called `Replace`
|
||||
$replace = $json.checkver.replace
|
||||
}
|
||||
|
||||
if (!$jsonpath -and !$regex -and !$xpath) {
|
||||
if(!$jsonpath -and !$regex) {
|
||||
$regex = $json.checkver
|
||||
}
|
||||
|
||||
$reverse = $json.checkver.reverse -and $json.checkver.reverse -eq 'true'
|
||||
|
||||
if ($url -like '*api.github.com/*') { $useGithubAPI = $true }
|
||||
|
||||
if ($useGithubAPI -and ($null -ne $GitHubToken)) {
|
||||
$url = $url -replace '//(www\.)?github.com/', '//api.github.com/repos/'
|
||||
$wc.Headers.Add('Authorization', "token $GitHubToken")
|
||||
$state = new-object psobject @{
|
||||
app = (strip_ext $name);
|
||||
url = $url;
|
||||
regex = $regex;
|
||||
json = $json;
|
||||
jsonpath = $jsonpath;
|
||||
}
|
||||
|
||||
$url = substitute $url $substitutions
|
||||
|
||||
$state = New-Object psobject @{
|
||||
app = $name
|
||||
file = $file
|
||||
url = $url
|
||||
regex = $regex
|
||||
json = $json
|
||||
jsonpath = $jsonpath
|
||||
xpath = $xpath
|
||||
reverse = $reverse
|
||||
replace = $replace
|
||||
}
|
||||
|
||||
get_config PRIVATE_HOSTS | Where-Object { $_ -ne $null -and $url -match $_.match } | ForEach-Object {
|
||||
(ConvertFrom-StringData -StringData $_.Headers).GetEnumerator() | ForEach-Object {
|
||||
$wc.Headers[$_.Key] = $_.Value
|
||||
}
|
||||
}
|
||||
|
||||
$wc.Headers.Add('Referer', (strip_filename $url))
|
||||
$wc.DownloadDataAsync($url, $state)
|
||||
}
|
||||
|
||||
function next($er) {
|
||||
Write-Host "$App`: " -NoNewline
|
||||
Write-Host $er -ForegroundColor DarkRed
|
||||
$wc.headers.add('Referer', (strip_filename $url))
|
||||
$wc.downloadstringasync($url, $state)
|
||||
}
|
||||
|
||||
# wait for all to complete
|
||||
$in_progress = $Queue.length
|
||||
while ($in_progress -gt 0) {
|
||||
$ev = Wait-Event
|
||||
Remove-Event $ev.SourceIdentifier
|
||||
$in_progress = $queue.length
|
||||
while($in_progress -gt 0) {
|
||||
$ev = wait-event
|
||||
remove-event $ev.sourceidentifier
|
||||
$in_progress--
|
||||
|
||||
$state = $ev.SourceEventArgs.UserState
|
||||
$result = $ev.SourceEventArgs.Result
|
||||
$state = $ev.sourceeventargs.userstate
|
||||
$app = $state.app
|
||||
$file = $state.file
|
||||
$json = $state.json
|
||||
$url = $state.url
|
||||
$expected_ver = $json.version
|
||||
$regexp = $state.regex
|
||||
$jsonpath = $state.jsonpath
|
||||
$xpath = $state.xpath
|
||||
$script = $json.checkver.script
|
||||
$reverse = $state.reverse
|
||||
$replace = $state.replace
|
||||
$expected_ver = $json.version
|
||||
$ver = $Version
|
||||
$ver = ""
|
||||
|
||||
if (!$ver) {
|
||||
if (!$regexp -and $replace) {
|
||||
next "'replace' requires 're' or 'regex'"
|
||||
continue
|
||||
}
|
||||
$err = $ev.SourceEventArgs.Error
|
||||
if ($err) {
|
||||
next "$($err.message)`r`nURL $url is not valid"
|
||||
continue
|
||||
}
|
||||
$err = $ev.sourceeventargs.error
|
||||
$page = $ev.sourceeventargs.result
|
||||
|
||||
if ($url) {
|
||||
$ms = New-Object System.IO.MemoryStream
|
||||
$ms.Write($result, 0, $result.Length)
|
||||
$ms.Seek(0, 0) | Out-Null
|
||||
if ($result[0] -eq 0x1F -and $result[1] -eq 0x8B) {
|
||||
$ms = New-Object System.IO.Compression.GZipStream($ms, [System.IO.Compression.CompressionMode]::Decompress)
|
||||
}
|
||||
$page = (New-Object System.IO.StreamReader($ms, (Get-Encoding $wc))).ReadToEnd()
|
||||
}
|
||||
$source = $url
|
||||
if ($script) {
|
||||
$page = Invoke-Command ([scriptblock]::Create($script -join "`r`n"))
|
||||
$source = 'the output of script'
|
||||
}
|
||||
write-host "$app`: " -nonewline
|
||||
|
||||
if ($jsonpath) {
|
||||
# Return only a single value if regex is absent
|
||||
$noregex = [String]::IsNullOrEmpty($regexp)
|
||||
# If reverse is ON and regex is ON,
|
||||
# Then reverse would have no effect because regex handles reverse
|
||||
# on its own
|
||||
# So in this case we have to disable reverse
|
||||
$ver = json_path $page $jsonpath $null ($reverse -and $noregex) $noregex
|
||||
if (!$ver) {
|
||||
$ver = json_path_legacy $page $jsonpath
|
||||
}
|
||||
if (!$ver) {
|
||||
next "couldn't find '$jsonpath' in $source"
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if ($xpath) {
|
||||
$xml = [xml]$page
|
||||
# Find all `significant namespace declarations` from the XML file
|
||||
$nsList = $xml.SelectNodes("//namespace::*[not(. = ../../namespace::*)]")
|
||||
# Then add them into the NamespaceManager
|
||||
$nsmgr = New-Object System.Xml.XmlNamespaceManager($xml.NameTable)
|
||||
$nsList | ForEach-Object {
|
||||
if ($_.LocalName -eq 'xmlns') {
|
||||
$nsmgr.AddNamespace('ns', $_.Value)
|
||||
$xpath = $xpath -replace '/([^:/]+)((?=/)|(?=$))', '/ns:$1'
|
||||
} else {
|
||||
$nsmgr.AddNamespace($_.LocalName, $_.Value)
|
||||
}
|
||||
}
|
||||
# Getting version from XML, using XPath
|
||||
$ver = $xml.SelectSingleNode($xpath, $nsmgr).'#text'
|
||||
if (!$ver) {
|
||||
next "couldn't find '$($xpath -replace 'ns:', '')' in $source"
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if ($jsonpath -and $regexp) {
|
||||
$page = $ver
|
||||
$ver = ''
|
||||
}
|
||||
|
||||
if ($xpath -and $regexp) {
|
||||
$page = $ver
|
||||
$ver = ''
|
||||
}
|
||||
|
||||
if ($regexp) {
|
||||
$re = New-Object System.Text.RegularExpressions.Regex($regexp)
|
||||
if ($reverse) {
|
||||
$match = $re.Matches($page) | Select-Object -Last 1
|
||||
} else {
|
||||
$match = $re.Matches($page) | Select-Object -First 1
|
||||
}
|
||||
|
||||
if ($match -and $match.Success) {
|
||||
$matchesHashtable = @{}
|
||||
$re.GetGroupNames() | ForEach-Object { $matchesHashtable.Add($_, $match.Groups[$_].Value) }
|
||||
$ver = $matchesHashtable['1']
|
||||
if ($replace) {
|
||||
$ver = $re.Replace($match.Value, $replace)
|
||||
}
|
||||
if (!$ver) {
|
||||
$ver = $matchesHashtable['version']
|
||||
}
|
||||
} else {
|
||||
next "couldn't match '$regexp' in $source"
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if (!$ver) {
|
||||
next "couldn't find new version in $source"
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
# Skip actual only if versions are same and there is no -f
|
||||
if (($ver -eq $expected_ver) -and !$ForceUpdate -and $SkipUpdated) { continue }
|
||||
|
||||
Write-Host "$app`: " -NoNewline
|
||||
|
||||
# version hasn't changed (step over if forced update)
|
||||
if ($ver -eq $expected_ver -and !$ForceUpdate) {
|
||||
Write-Host $ver -ForegroundColor DarkGreen
|
||||
if($err) {
|
||||
write-host -f darkred $err.message
|
||||
write-host -f darkred "URL $url is not valid"
|
||||
continue
|
||||
}
|
||||
|
||||
Write-Host $ver -ForegroundColor DarkRed -NoNewline
|
||||
Write-Host " (scoop version is $expected_ver)" -NoNewline
|
||||
$update_available = (Compare-Version -ReferenceVersion $ver -DifferenceVersion $expected_ver) -ne 0
|
||||
|
||||
if ($json.autoupdate -and $update_available) {
|
||||
Write-Host ' autoupdate available' -ForegroundColor Cyan
|
||||
} else {
|
||||
Write-Host ''
|
||||
if($jsonpath -and $regexp) {
|
||||
write-host -f darkred "'jp' and 're' shouldn't be used together"
|
||||
continue
|
||||
}
|
||||
|
||||
# forcing an update implies updating, right?
|
||||
if ($ForceUpdate) { $Update = $true }
|
||||
|
||||
if ($Update -and $json.autoupdate) {
|
||||
if ($ForceUpdate) {
|
||||
Write-Host 'Forcing autoupdate!' -ForegroundColor DarkMagenta
|
||||
if($jsonpath) {
|
||||
$ver = json_path ($page | ConvertFrom-Json -ea stop) $jsonpath
|
||||
if(!$ver) {
|
||||
write-host -f darkred "couldn't find '$jsonpath' in $url"
|
||||
continue
|
||||
}
|
||||
try {
|
||||
Invoke-AutoUpdate $app $file $json $ver $matchesHashtable # 'autoupdate.ps1'
|
||||
} catch {
|
||||
if ($ThrowError) {
|
||||
throw $_
|
||||
} else {
|
||||
error $_.Exception.Message
|
||||
}
|
||||
|
||||
if($regexp) {
|
||||
if($page -match $regexp) {
|
||||
$ver = $matches[1]
|
||||
if(!$ver) {
|
||||
$ver = $matches['version']
|
||||
}
|
||||
} else {
|
||||
write-host -f darkred "couldn't match '$regexp' in $url"
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if(!$ver) {
|
||||
write-host -f darkred "couldn't find new version in $url"
|
||||
continue
|
||||
}
|
||||
|
||||
if($ver -eq $expected_ver) {
|
||||
write-host "$ver" -f darkgreen
|
||||
|
||||
if ($forceUpdate -and $json.autoupdate) {
|
||||
Write-Host "Forcing autoupdate!" -f DarkMagenta
|
||||
try {
|
||||
autoupdate $app $dir $json $ver $matches
|
||||
} catch {
|
||||
write-host -f darkred $_.exception.message
|
||||
}
|
||||
}
|
||||
} else {
|
||||
write-host "$ver" -f darkred -nonewline
|
||||
write-host " (scoop version is $expected_ver)" -NoNewline
|
||||
$update_available = (compare_versions $expected_ver $ver) -eq -1
|
||||
|
||||
if ($json.autoupdate -and $update_available) {
|
||||
Write-Host " autoupdate available" -f Cyan
|
||||
} else {
|
||||
Write-Host ""
|
||||
}
|
||||
|
||||
if ($update -and $update_available -and $json.autoupdate) {
|
||||
try {
|
||||
autoupdate $app $dir $json $ver $matches
|
||||
} catch {
|
||||
write-host -f darkred $_.exception.message
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
set_https_protocols $original
|
||||
|
||||
<#
|
||||
write-host "checking $(strip_ext (fname $_))..." -nonewline
|
||||
$expected_ver = $json.version
|
||||
|
||||
$url = $json.checkver.url
|
||||
if(!$url) { $url = $json.homepage }
|
||||
|
||||
$regexp = $json.checkver.re
|
||||
if(!$regexp) { $regexp = $json.checkver }
|
||||
|
||||
$page = $wc.downloadstring($url)
|
||||
|
||||
if($page -match $regexp) {
|
||||
$ver = $matches[1]
|
||||
if($ver -eq $expected_ver) {
|
||||
write-host "$ver" -f darkgreen
|
||||
} else {
|
||||
write-host "$ver" -f darkred -nonewline
|
||||
write-host " (scoop version is $expected_ver)"
|
||||
}
|
||||
|
||||
} else {
|
||||
write-host "couldn't match '$regexp' in $url" -f darkred
|
||||
}
|
||||
#>
|
||||
|
||||
@@ -1,64 +1,50 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Search for application description on homepage.
|
||||
.PARAMETER App
|
||||
Manifest name to search.
|
||||
Placeholders are supported.
|
||||
.PARAMETER Dir
|
||||
Where to search for manifest(s).
|
||||
#>
|
||||
param(
|
||||
[String] $App = '*',
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateScript( {
|
||||
if (!(Test-Path $_ -Type Container)) {
|
||||
throw "$_ is not a directory!"
|
||||
} else {
|
||||
$true
|
||||
}
|
||||
})]
|
||||
[String] $Dir
|
||||
)
|
||||
param($app, $dir)
|
||||
|
||||
. "$PSScriptRoot\..\lib\core.ps1"
|
||||
. "$PSScriptRoot\..\lib\manifest.ps1"
|
||||
. "$PSScriptRoot\..\lib\description.ps1"
|
||||
. "$psscriptroot\..\lib\core.ps1"
|
||||
. "$psscriptroot\..\lib\manifest.ps1"
|
||||
. "$psscriptroot\..\lib\description.ps1"
|
||||
|
||||
$Dir = Convert-Path $Dir
|
||||
$Queue = @()
|
||||
if(!$dir) {
|
||||
$dir = "$psscriptroot\..\bucket"
|
||||
}
|
||||
$dir = resolve-path $dir
|
||||
|
||||
Get-ChildItem $Dir -Filter "$App.json" -Recurse | ForEach-Object {
|
||||
$manifest = parse_json $_.FullName
|
||||
$Queue += , @($_.BaseName, $manifest)
|
||||
$search = "*"
|
||||
if($app) { $search = $app }
|
||||
|
||||
# get apps to check
|
||||
$apps = @()
|
||||
gci $dir "$search.json" | % {
|
||||
$json = parse_json "$dir\$_"
|
||||
$apps += ,@(($_ -replace '\.json$', ''), $json)
|
||||
}
|
||||
|
||||
$Queue | ForEach-Object {
|
||||
$name, $manifest = $_
|
||||
Write-Host "$name`: " -NoNewline
|
||||
$apps |% {
|
||||
$app, $json = $_
|
||||
write-host "$app`: " -nonewline
|
||||
|
||||
if (!$manifest.homepage) {
|
||||
Write-Host "`nNo homepage set." -ForegroundColor Red
|
||||
if(!$json.homepage) {
|
||||
write-host "`nNo homepage set." -fore red
|
||||
return
|
||||
}
|
||||
# get description from homepage
|
||||
try {
|
||||
$wc = New-Object Net.Webclient
|
||||
$wc.Headers.Add('User-Agent', (Get-UserAgent))
|
||||
$homepage = $wc.DownloadData($manifest.homepage)
|
||||
$home_html = (Get-Encoding($wc)).GetString($homepage)
|
||||
$home_html = (new-object net.webclient).downloadstring($json.homepage)
|
||||
} catch {
|
||||
Write-Host "`n$($_.Exception.Message)" -ForegroundColor Red
|
||||
write-host "`n$($_.exception.message)" -fore red
|
||||
return
|
||||
}
|
||||
|
||||
$description, $descr_method = find_description $manifest.homepage $home_html
|
||||
if (!$description) {
|
||||
Write-Host "`nDescription not found ($($manifest.homepage))" -ForegroundColor Red
|
||||
$description, $descr_method = find_description $json.homepage $home_html
|
||||
if(!$description) {
|
||||
write-host -fore red "`nDescription not found ($($json.homepage))"
|
||||
return
|
||||
}
|
||||
|
||||
$description = clean_description $description
|
||||
|
||||
Write-Host "(found by $descr_method)"
|
||||
Write-Host " ""$description""" -ForegroundColor Green
|
||||
write-host "(found by $descr_method)"
|
||||
write-host " ""$description""" -fore green
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,44 +1,31 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Format manifest.
|
||||
.PARAMETER App
|
||||
Manifest to format.
|
||||
# reformat manifest json
|
||||
param($path)
|
||||
|
||||
Wildcards are supported.
|
||||
.PARAMETER Dir
|
||||
Where to search for manifest(s).
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT> .\bin\formatjson.ps1
|
||||
Format all manifests inside bucket directory.
|
||||
.EXAMPLE
|
||||
PS BUCKETROOT> .\bin\formatjson.ps1 7zip
|
||||
Format manifest '7zip' inside bucket directory.
|
||||
#>
|
||||
param(
|
||||
[String] $App = '*',
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateScript( {
|
||||
if (!(Test-Path $_ -Type Container)) {
|
||||
throw "$_ is not a directory!"
|
||||
} else {
|
||||
$true
|
||||
}
|
||||
})]
|
||||
[String] $Dir
|
||||
)
|
||||
. "$psscriptroot\..\lib\core.ps1"
|
||||
. "$psscriptroot\..\lib\manifest.ps1"
|
||||
. "$psscriptroot\..\lib\json.ps1"
|
||||
|
||||
. "$PSScriptRoot\..\lib\core.ps1"
|
||||
. "$PSScriptRoot\..\lib\manifest.ps1"
|
||||
. "$PSScriptRoot\..\lib\json.ps1"
|
||||
if(!$path) { $path = "$psscriptroot\..\bucket" }
|
||||
$path = resolve-path $path
|
||||
|
||||
$Dir = Convert-Path $Dir
|
||||
$dir = ""
|
||||
$type = Get-Item $path
|
||||
if ($type -is [System.IO.DirectoryInfo]) {
|
||||
$dir = "$path\"
|
||||
$files = Get-ChildItem $path "*.json"
|
||||
} elseif ($type -is [System.IO.FileInfo]) {
|
||||
$files = @($path)
|
||||
} else {
|
||||
Write-Error "unknown item"
|
||||
exit
|
||||
}
|
||||
|
||||
Get-ChildItem $Dir -Filter "$App.json" -Recurse | ForEach-Object {
|
||||
$file = $_.FullName
|
||||
$files | % {
|
||||
# beautify
|
||||
$json = parse_json $file | ConvertToPrettyJson
|
||||
$json = parse_json "$dir$_" | ConvertToPrettyJson
|
||||
|
||||
# convert to 4 spaces
|
||||
$json = $json -replace "`t", ' '
|
||||
[System.IO.File]::WriteAllLines($file, $json)
|
||||
$json = $json -replace "`t",' '
|
||||
|
||||
[System.IO.File]::WriteAllLines("$dir$_", $json)
|
||||
}
|
||||
|
||||
@@ -1,2 +1,46 @@
|
||||
#Requires -Version 5
|
||||
Invoke-RestMethod https://get.scoop.sh | Invoke-Expression
|
||||
#requires -v 3
|
||||
|
||||
# remote install:
|
||||
# iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
|
||||
$erroractionpreference='stop' # quit if anything goes wrong
|
||||
|
||||
# show notification to change execution policy:
|
||||
if((get-executionpolicy) -gt 'RemoteSigned') {
|
||||
"PowerShell requires an execution policy of 'RemoteSigned' to run Scoop."
|
||||
"To make this change please run:"
|
||||
"'Set-ExecutionPolicy RemoteSigned -scope CurrentUser'"
|
||||
break
|
||||
}
|
||||
|
||||
# get core functions
|
||||
$core_url = 'https://raw.github.com/lukesampson/scoop/master/lib/core.ps1'
|
||||
echo 'Initializing...'
|
||||
iex (new-object net.webclient).downloadstring($core_url)
|
||||
|
||||
# prep
|
||||
if(installed 'scoop') {
|
||||
write-host "Scoop is already installed. Run 'scoop update' to get the latest version." -f red
|
||||
# don't abort if invoked with iex——that would close the PS session
|
||||
if($myinvocation.mycommand.commandtype -eq 'Script') { return } else { exit 1 }
|
||||
}
|
||||
$dir = ensure (versiondir 'scoop' 'current')
|
||||
|
||||
# download scoop zip
|
||||
$zipurl = 'https://github.com/lukesampson/scoop/archive/master.zip'
|
||||
$zipfile = "$dir\scoop.zip"
|
||||
echo 'Downloading...'
|
||||
dl $zipurl $zipfile
|
||||
|
||||
'Extracting...'
|
||||
unzip $zipfile "$dir\_tmp"
|
||||
cp "$dir\_tmp\scoop-master\*" $dir -r -force
|
||||
rm "$dir\_tmp" -r -force
|
||||
rm $zipfile
|
||||
|
||||
echo 'Creating shim...'
|
||||
shim "$dir\bin\scoop.ps1" $false
|
||||
|
||||
ensure_robocopy_in_path
|
||||
ensure_scoop_in_path
|
||||
success 'Scoop was installed successfully!'
|
||||
echo "Type 'scoop help' for instructions."
|
||||
|
||||
@@ -1,52 +1,36 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Check if manifest contains checkver and autoupdate property.
|
||||
.PARAMETER App
|
||||
Manifest name.
|
||||
Wirldcard is supported.
|
||||
.PARAMETER Dir
|
||||
Location of manifests.
|
||||
.PARAMETER SkipSupported
|
||||
Manifests with checkver and autoupdate will not be presented.
|
||||
#>
|
||||
# list manifests which do not specify a checkver regex
|
||||
param(
|
||||
[String] $App = '*',
|
||||
[Parameter(Mandatory = $true)]
|
||||
[ValidateScript( {
|
||||
if (!(Test-Path $_ -Type Container)) {
|
||||
throw "$_ is not a directory!"
|
||||
} else {
|
||||
$true
|
||||
}
|
||||
})]
|
||||
[String] $Dir,
|
||||
[Switch] $SkipSupported
|
||||
[String]$dir,
|
||||
[Switch]$skipSupported = $false
|
||||
)
|
||||
|
||||
. "$PSScriptRoot\..\lib\core.ps1"
|
||||
. "$PSScriptRoot\..\lib\manifest.ps1"
|
||||
. "$psscriptroot\..\lib\core.ps1"
|
||||
. "$psscriptroot\..\lib\manifest.ps1"
|
||||
|
||||
$Dir = Convert-Path $Dir
|
||||
if(!$dir) { $dir = "$psscriptroot\..\bucket" }
|
||||
$dir = resolve-path $dir
|
||||
|
||||
Write-Host '[' -NoNewLine
|
||||
Write-Host 'C' -NoNewLine -ForegroundColor Green
|
||||
Write-Host ']heckver'
|
||||
Write-Host ' | [' -NoNewLine
|
||||
Write-Host 'A' -NoNewLine -ForegroundColor Cyan
|
||||
Write-Host ']utoupdate'
|
||||
Write-Host ' | |'
|
||||
write-host "[" -nonewline
|
||||
write-host -f green "C" -nonewline
|
||||
write-host "]heckver"
|
||||
write-host " | [" -nonewline
|
||||
write-host -f cyan "A" -nonewline
|
||||
write-host "]utoupdate"
|
||||
write-host " | |"
|
||||
|
||||
Get-ChildItem $Dir -Filter "$App.json" -Recurse | ForEach-Object {
|
||||
$json = parse_json $_.FullName
|
||||
gci $dir "*.json" | % {
|
||||
$json = parse_json "$dir\$_"
|
||||
|
||||
if ($SkipSupported -and $json.checkver -and $json.autoupdate) { return }
|
||||
if ($skipSupported -and $json.checkver -and $json.autoupdate) {
|
||||
return
|
||||
}
|
||||
|
||||
Write-Host '[' -NoNewLine
|
||||
Write-Host $(if ($json.checkver) { 'C' } else { ' ' }) -NoNewLine -ForegroundColor Green
|
||||
Write-Host ']' -NoNewLine
|
||||
write-host "[" -nonewline
|
||||
write-host -f green -nonewline $( If ($json.checkver) {"C"} Else {" "} )
|
||||
write-host "]" -nonewline
|
||||
|
||||
Write-Host '[' -NoNewLine
|
||||
Write-Host $(if ($json.autoupdate) { 'A' } else { ' ' }) -NoNewLine -ForegroundColor Cyan
|
||||
Write-Host '] ' -NoNewLine
|
||||
Write-Host $_.BaseName
|
||||
write-host "[" -nonewline
|
||||
write-host -f cyan -nonewline $( If ($json.autoupdate) {"A"} Else {" "} )
|
||||
write-host "] " -nonewline
|
||||
write-host (strip_ext $_)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# for development, update the installed scripts to match local source
|
||||
. "$PSScriptRoot\..\lib\core.ps1"
|
||||
. "$psscriptroot\..\lib\core.ps1"
|
||||
|
||||
$src = "$PSScriptRoot\.."
|
||||
$src = relpath ".."
|
||||
$dest = ensure (versiondir 'scoop' 'current')
|
||||
|
||||
# make sure not running from the installed directory
|
||||
@@ -10,9 +10,10 @@ if("$src" -eq "$dest") { abort "$(strip_ext $myinvocation.mycommand.name) is for
|
||||
'copying files...'
|
||||
$output = robocopy $src $dest /mir /njh /njs /nfl /ndl /xd .git tmp /xf .DS_Store last_updated
|
||||
|
||||
$output | Where-Object { $_ -ne "" }
|
||||
$output | ? { $_ -ne "" }
|
||||
|
||||
Write-Output 'creating shim...'
|
||||
echo 'creating shim...'
|
||||
shim "$dest\bin\scoop.ps1" $false
|
||||
|
||||
ensure_scoop_in_path
|
||||
success 'scoop was refreshed!'
|
||||
|
||||
@@ -1,53 +1,15 @@
|
||||
#Requires -Version 5
|
||||
Set-StrictMode -Off
|
||||
#requires -v 3
|
||||
param($cmd)
|
||||
|
||||
. "$PSScriptRoot\..\lib\core.ps1"
|
||||
. "$PSScriptRoot\..\lib\buckets.ps1"
|
||||
. "$PSScriptRoot\..\lib\commands.ps1"
|
||||
. "$PSScriptRoot\..\lib\help.ps1"
|
||||
set-strictmode -off
|
||||
|
||||
$subCommand = $Args[0]
|
||||
. "$psscriptroot\..\lib\core.ps1"
|
||||
. (relpath '..\lib\commands')
|
||||
|
||||
# for aliases where there's a local function, re-alias so the function takes precedence
|
||||
$aliases = Get-Alias | Where-Object { $_.Options -notmatch 'ReadOnly|AllScope' } | ForEach-Object { $_.Name }
|
||||
Get-ChildItem Function: | Where-Object -Property Name -In -Value $aliases | ForEach-Object {
|
||||
Set-Alias -Name $_.Name -Value Local:$($_.Name) -Scope Script
|
||||
}
|
||||
reset_aliases
|
||||
|
||||
switch ($subCommand) {
|
||||
({ $subCommand -in @($null, '-h', '--help', '/?') }) {
|
||||
exec 'help'
|
||||
}
|
||||
({ $subCommand -in @('-v', '--version') }) {
|
||||
Write-Host 'Current Scoop version:'
|
||||
if (Test-GitAvailable -and (Test-Path "$PSScriptRoot\..\.git") -and (get_config SCOOP_BRANCH 'master') -ne 'master') {
|
||||
Invoke-Git -Path "$PSScriptRoot\.." -ArgumentList @('log', 'HEAD', '-1', '--oneline')
|
||||
} else {
|
||||
$version = Select-String -Pattern '^## \[(v[\d.]+)\].*?([\d-]+)$' -Path "$PSScriptRoot\..\CHANGELOG.md"
|
||||
Write-Host $version.Matches.Groups[1].Value -ForegroundColor Cyan -NoNewline
|
||||
Write-Host " - Released at $($version.Matches.Groups[2].Value)"
|
||||
}
|
||||
Write-Host ''
|
||||
$commands = commands
|
||||
|
||||
Get-LocalBucket | ForEach-Object {
|
||||
$bucketLoc = Find-BucketDirectory $_ -Root
|
||||
if (Test-GitAvailable -and (Test-Path "$bucketLoc\.git")) {
|
||||
Write-Host "'$_' bucket:"
|
||||
Invoke-Git -Path $bucketLoc -ArgumentList @('log', 'HEAD', '-1', '--oneline')
|
||||
Write-Host ''
|
||||
}
|
||||
}
|
||||
}
|
||||
({ $subCommand -in (commands) }) {
|
||||
[string[]]$arguments = $Args | Select-Object -Skip 1
|
||||
if ($null -ne $arguments -and $arguments[0] -in @('-h', '--help', '/?')) {
|
||||
exec 'help' @($subCommand)
|
||||
} else {
|
||||
exec $subCommand $arguments
|
||||
}
|
||||
}
|
||||
default {
|
||||
warn "scoop: '$subCommand' isn't a scoop command. See 'scoop help'."
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
if (@($null, '-h', '--help', '/?') -contains $cmd) { exec 'help' $args }
|
||||
elseif ($commands -contains $cmd) { exec $cmd $args }
|
||||
else { "scoop: '$cmd' isn't a scoop command. See 'scoop help'."; exit 1 }
|
||||
|
||||
@@ -1 +1 @@
|
||||
. "$PSScriptRoot\..\test\bin\test.ps1"
|
||||
invoke-pester $psscriptroot\..\test
|
||||
|
||||
@@ -1,107 +1,74 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Uninstall ALL scoop applications and scoop itself.
|
||||
.PARAMETER global
|
||||
Global applications will be uninstalled.
|
||||
.PARAMETER purge
|
||||
Persisted data will be deleted.
|
||||
#>
|
||||
param(
|
||||
[bool] $global,
|
||||
[bool] $purge
|
||||
)
|
||||
param($global)
|
||||
|
||||
. "$PSScriptRoot\..\lib\core.ps1"
|
||||
. "$PSScriptRoot\..\lib\system.ps1"
|
||||
. "$PSScriptRoot\..\lib\install.ps1"
|
||||
. "$PSScriptRoot\..\lib\shortcuts.ps1"
|
||||
. "$PSScriptRoot\..\lib\versions.ps1"
|
||||
. "$PSScriptRoot\..\lib\manifest.ps1"
|
||||
. "$psscriptroot\..\lib\core.ps1"
|
||||
. "$psscriptroot\..\lib\install.ps1"
|
||||
. "$psscriptroot\..\lib\shortcuts.ps1"
|
||||
. "$psscriptroot\..\lib\versions.ps1"
|
||||
. "$psscriptroot\..\lib\manifest.ps1"
|
||||
|
||||
if ($global -and !(is_admin)) {
|
||||
error 'You need admin rights to uninstall globally.'
|
||||
exit 1
|
||||
if($global -and !(is_admin)) {
|
||||
"ERROR: You need admin rights to uninstall globally."; exit 1
|
||||
}
|
||||
|
||||
if ($purge) {
|
||||
warn 'This will uninstall Scoop, all the programs that have been installed with Scoop and all persisted data!'
|
||||
} else {
|
||||
warn 'This will uninstall Scoop and all the programs that have been installed with Scoop!'
|
||||
}
|
||||
$yn = Read-Host 'Are you sure? (yN)'
|
||||
if ($yn -notlike 'y*') { exit }
|
||||
warn 'This will uninstall Scoop and all the programs that have been installed with Scoop!'
|
||||
$yn = read-host 'Are you sure? (yN)'
|
||||
if($yn -notlike 'y*') { exit }
|
||||
|
||||
$errors = $false
|
||||
|
||||
# Uninstall given app
|
||||
function do_uninstall($app, $global) {
|
||||
$version = Select-CurrentVersion -AppName $app -Global:$global
|
||||
$version = current_version $app $global
|
||||
$dir = versiondir $app $version $global
|
||||
$manifest = installed_manifest $app $version $global
|
||||
$install = install_info $app $version $global
|
||||
$architecture = $install.architecture
|
||||
|
||||
Write-Output "Uninstalling '$app'"
|
||||
Invoke-Installer -Path $dir -Manifest $manifest -ProcessorArchitecture $architecture -Uninstall
|
||||
rm_shims $app $manifest $global $architecture
|
||||
echo "Uninstalling '$app'"
|
||||
run_uninstaller $manifest $architecture $dir
|
||||
rm_shims $manifest $global $architecture
|
||||
|
||||
# If a junction was used during install, that will have been used
|
||||
# as the reference directory. Othewise it will just be the version
|
||||
# directory.
|
||||
$refdir = unlink_current (appdir $app $global)
|
||||
|
||||
env_rm_path $manifest $refdir $global $architecture
|
||||
env_rm $manifest $global $architecture
|
||||
env_rm_path $manifest $refdir $global
|
||||
env_rm $manifest $global
|
||||
|
||||
$appdir = appdir $app $global
|
||||
try {
|
||||
Remove-Item $appdir -Recurse -Force -ErrorAction Stop
|
||||
rm -r -force $appdir -ea stop
|
||||
} catch {
|
||||
$errors = $true
|
||||
warn "Couldn't remove $(friendly_path $appdir): $_.Exception"
|
||||
warn "Couldn't remove $(friendly_path $appdir): $_.exception"
|
||||
}
|
||||
}
|
||||
|
||||
function rm_dir($dir) {
|
||||
try {
|
||||
Remove-Item $dir -Recurse -Force -ErrorAction Stop
|
||||
rm -r -force $dir -ea stop
|
||||
} catch {
|
||||
abort "Couldn't remove $(friendly_path $dir): $_"
|
||||
}
|
||||
}
|
||||
|
||||
# Remove all folders (except persist) inside given scoop directory.
|
||||
function keep_onlypersist($directory) {
|
||||
Get-ChildItem $directory -Exclude 'persist' | ForEach-Object { rm_dir $_ }
|
||||
}
|
||||
|
||||
# Run uninstallation for each app if necessary, continuing if there's
|
||||
# run uninstallation for each app if necessary, continuing if there's
|
||||
# a problem deleting a directory (which is quite likely)
|
||||
if ($global) {
|
||||
installed_apps $true | ForEach-Object { # global apps
|
||||
if($global) {
|
||||
installed_apps $true | % { # global apps
|
||||
do_uninstall $_ $true
|
||||
}
|
||||
}
|
||||
|
||||
installed_apps $false | ForEach-Object { # local apps
|
||||
installed_apps $false | % { # local apps
|
||||
do_uninstall $_ $false
|
||||
}
|
||||
|
||||
if ($errors) {
|
||||
abort 'Not all apps could be deleted. Try again or restart.'
|
||||
if($errors) {
|
||||
abort "Not all apps could be deleted. Try again or restart."
|
||||
}
|
||||
|
||||
if ($purge) {
|
||||
rm_dir $scoopdir
|
||||
if ($global) { rm_dir $globaldir }
|
||||
} else {
|
||||
keep_onlypersist $scoopdir
|
||||
if ($global) { keep_onlypersist $globaldir }
|
||||
}
|
||||
rm_dir $scoopdir
|
||||
if($global) { rm_dir $globaldir }
|
||||
|
||||
Remove-Path -Path (shimdir $global) -Global:$global
|
||||
if (get_config USE_ISOLATED_PATH) {
|
||||
Remove-Path -Path ('%' + $scoopPathEnvVar + '%') -Global:$global
|
||||
}
|
||||
remove_from_path (shimdir $false)
|
||||
if($global) { remove_from_path (shimdir $true) }
|
||||
|
||||
success 'Scoop has been uninstalled.'
|
||||
success "Scoop has been uninstalled."
|
||||
|
||||
28
bucket/7zip.json
Normal file
28
bucket/7zip.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"homepage": "http://www.7-zip.org/",
|
||||
"license": "http://www.7-zip.org/license.txt",
|
||||
"version": "16.04",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "http://7-zip.org/a/7z1604-x64.msi",
|
||||
"hash": "b3885b2f090f1e9b5cf2b9f802b07fe88e472d70d60732db9f830209ac296067"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "http://7-zip.org/a/7z1604.msi",
|
||||
"hash": "d9b62c0ed0eb48d2df86d8b83394048414a2a4e1d64a50adb9abcff643471d20"
|
||||
}
|
||||
},
|
||||
"extract_dir": "Files/7-Zip",
|
||||
"bin": "7z.exe",
|
||||
"checkver": "Download 7-zip ([^\\ ]+)",
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "http://7-zip.org/a/7z$cleanVersion-x64.msi"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "http://7-zip.org/a/7z$cleanVersion.msi"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
17
bucket/ack.json
Normal file
17
bucket/ack.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"homepage": "http://beyondgrep.com/",
|
||||
"license": "http://opensource.org/licenses/Artistic-2.0",
|
||||
"version": "2.18",
|
||||
"url": "http://beyondgrep.com/ack-2.18-single-file#/ack-single-file",
|
||||
"hash": "6e41057c8f50f661d800099471f769209480efa53b8a886969d7ec6db60a2208",
|
||||
"bin": "ack.bat",
|
||||
"depends": "perl",
|
||||
"pre_install": "Set-Content -Value '@perl.exe %~dp0ack-single-file %*' -Path $dir\\ack.bat",
|
||||
"checkver": {
|
||||
"url": "http://beyondgrep.com/install/",
|
||||
"re": "The current stable version of ack is version ([\\d.]+),"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "http://beyondgrep.com/ack-$version-single-file#/ack-single-file"
|
||||
}
|
||||
}
|
||||
10
bucket/acmesharp.json
Normal file
10
bucket/acmesharp.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"version": "0.8.1.0",
|
||||
"homepage": "https://github.com/ebekker/ACMESharp",
|
||||
"url": "https://github.com/ebekker/ACMESharp/releases/download/v0.8.1.0-EA/ACME-posh.zip",
|
||||
"hash": "b1da3d39744ba5842bb3a3b97da9a5e4d4c22314b741baa0175e9d0c977ec3f1",
|
||||
"extract_dir": "Debug/ACMESharp",
|
||||
"psmodule": {
|
||||
"name": "ACMESharp"
|
||||
}
|
||||
}
|
||||
17
bucket/adb.json
Normal file
17
bucket/adb.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"version": "26.0.0",
|
||||
"homepage": "https://developer.android.com/studio/releases/platform-tools.html",
|
||||
"url": "https://dl.google.com/android/repository/platform-tools_r26.0.0-windows.zip",
|
||||
"hash": "48da3dac63b90756e1af1b489a3fb0fc81b956fe58791b260b7b18188c6cc5a0",
|
||||
"bin": [
|
||||
"platform-tools\\adb.exe",
|
||||
"platform-tools\\dmtracedump.exe",
|
||||
"platform-tools\\etc1tool.exe",
|
||||
"platform-tools\\fastboot.exe",
|
||||
"platform-tools\\hprof-conv.exe"
|
||||
],
|
||||
"checkver": "<h4.*>([\\d.]+) \\(.*\\)</h4>",
|
||||
"autoupdate": {
|
||||
"url": "https://dl.google.com/android/repository/platform-tools_r$version-windows.zip"
|
||||
}
|
||||
}
|
||||
9
bucket/ag.json
Normal file
9
bucket/ag.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"homepage": "http://geoff.greer.fm/ag/",
|
||||
"license": "Apache 2.0",
|
||||
"version": "0.29.1",
|
||||
"url": "https://kjkpub.s3.amazonaws.com/software/the_silver_searcher/rel/0.29.1-1641/ag.zip",
|
||||
"hash": "0f2643b925df66a56df82d419262c88c076ba257ab3a57c77291fce7b4479530",
|
||||
"bin": "ag.exe",
|
||||
"checkver": "the_silver_searcher-([\\d.]+).tar.gz"
|
||||
}
|
||||
25
bucket/allure.json
Normal file
25
bucket/allure.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"homepage": "https://github.com/allure-framework/allure2",
|
||||
"version": "2.1.0",
|
||||
"license": "https://github.com/allure-framework/allure2/blob/master/LICENSE",
|
||||
"url": "https://dl.bintray.com/qameta/generic/io/qameta/allure/allure/2.1.0/allure-2.1.0.zip",
|
||||
"hash": "9a3ec0e52bacb7fe7f38fa720f01e2fde4784f204de6457f2896cd987d399c22",
|
||||
"extract_dir": "allure-2.1.0",
|
||||
"bin": "bin\\allure.bat",
|
||||
"env_set": {
|
||||
"ALLURE_HOME": "$dir"
|
||||
},
|
||||
"persist": [
|
||||
"config",
|
||||
"plugins"
|
||||
],
|
||||
"checkver": "github",
|
||||
"autoupdate": {
|
||||
"url": "https://dl.bintray.com/qameta/generic/io/qameta/allure/allure/$version/allure-$version.zip",
|
||||
"extract_dir": "allure-$version",
|
||||
"hash": {
|
||||
"mode": "extract",
|
||||
"url": "$url.sha256"
|
||||
}
|
||||
}
|
||||
}
|
||||
29
bucket/ant.json
Normal file
29
bucket/ant.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"homepage": "http://ant.apache.org/",
|
||||
"version": "1.10.1",
|
||||
"license": "Apache 2.0",
|
||||
"url": "http://www-us.apache.org/dist/ant/binaries/apache-ant-1.10.1-bin.zip",
|
||||
"hash": "sha512:cf85d2b52ac379eaf83ae98544fd0317833a57811764cb1f5082f1ef046ba4f069bddf980f594ca00a93e1b37b4e646fdc8885a37651c5c9e8fc5d2b595256f6",
|
||||
"extract_dir": "apache-ant-1.10.1",
|
||||
"env_add_path": "bin",
|
||||
"env_set": {
|
||||
"ANT_HOME": "$dir"
|
||||
},
|
||||
"suggest": {
|
||||
"JDK": [
|
||||
"extras/oraclejdk",
|
||||
"openjdk"
|
||||
]
|
||||
},
|
||||
"checkver": {
|
||||
"url": "https://ant.apache.org/bindownload.cgi",
|
||||
"re": "Currently, Apache Ant (?:[\\d.]+ and )?([\\d.]+) (?:is|are) the best"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "http://www-us.apache.org/dist/ant/binaries/apache-ant-$version-bin.zip",
|
||||
"extract_dir": "apache-ant-$version",
|
||||
"hash": {
|
||||
"url": "$url.sha512"
|
||||
}
|
||||
}
|
||||
}
|
||||
56
bucket/apache.json
Normal file
56
bucket/apache.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"homepage": "https://www.apachelounge.com",
|
||||
"version": "2.4.25",
|
||||
"license": "Apache 2.0",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://www.apachelounge.com/download/VC14/binaries/httpd-2.4.25-win64-VC14.zip",
|
||||
"hash": "E03A43B53F00320DE27D9B7046F5E317D06268795592EF32353CE857D7AA4D76"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://www.apachelounge.com/download/VC14/binaries/httpd-2.4.25-win32-VC14.zip",
|
||||
"hash": "7773F8B02E367D4F7853292DC2B4FCB4085F509C85D9851030CC1F3C453FD4D2"
|
||||
}
|
||||
},
|
||||
"extract_dir": "Apache24",
|
||||
"persist": [
|
||||
"htdocs",
|
||||
"conf"
|
||||
],
|
||||
"bin": [
|
||||
"bin\\ab.exe",
|
||||
"bin\\abs.exe",
|
||||
"bin\\htcacheclean.exe",
|
||||
"bin\\htdbm.exe",
|
||||
"bin\\htdigest.exe",
|
||||
"bin\\htpasswd.exe",
|
||||
"bin\\httpd.exe",
|
||||
"bin\\httxt2dbm.exe",
|
||||
"bin\\logresolve.exe",
|
||||
"bin\\rotatelogs.exe"
|
||||
],
|
||||
"post_install": "
|
||||
# set directory in httpd.conf
|
||||
$conf = \"$dir/conf/httpd.conf\"
|
||||
$root=(scoop which httpd | split-path -res -par | split-path -par) -replace '\\\\', '/';
|
||||
(gc $conf) | % { $_ -replace 'c:/Apache24', \"$root\" } | sc $conf
|
||||
",
|
||||
"checkver": {
|
||||
"url": "https://www.apachelounge.com/download/",
|
||||
"re": "Apache ([\\d.]+) Win32"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://www.apachelounge.com/download/VC14/binaries/httpd-$version-win64-VC14.zip"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://www.apachelounge.com/download/VC14/binaries/httpd-$version-win32-VC14.zip"
|
||||
}
|
||||
},
|
||||
"hash": {
|
||||
"url": "$url.txt",
|
||||
"find": "SHA256-Checksum for: (?:$basename):\\s+([a-fA-F0-9]{64})"
|
||||
}
|
||||
}
|
||||
}
|
||||
30
bucket/apex.json
Normal file
30
bucket/apex.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"homepage": "http://apex.run/",
|
||||
"license": "https://github.com/apex/apex/blob/master/LICENSE",
|
||||
"version": "0.13.1",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/apex/apex/releases/download/v0.13.1/apex_windows_amd64.exe#/apex.exe",
|
||||
"hash": "b7274c8eec1f367604c92204b4ddafa93b06b71561b1421c3b5086c7bea1b1b7"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/apex/apex/releases/download/v0.13.1/apex_windows_386.exe#/apex.exe",
|
||||
"hash": "b7f866b5056cd6505a757af15e2004ff119d0e908fe1e88f64ccf2ec19ac0266"
|
||||
}
|
||||
},
|
||||
"extract_dir": "apex",
|
||||
"bin": "apex.exe",
|
||||
"checkver": {
|
||||
"github": "https://github.com/apex/apex"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/apex/apex/releases/download/v$version/apex_windows_amd64.exe#/apex.exe"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/apex/apex/releases/download/v$version/apex_windows_386.exe#/apex.exe"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
12
bucket/apngasm.json
Normal file
12
bucket/apngasm.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"homepage": "https://github.com/apngasm/apngasm",
|
||||
"version": "3.0.0",
|
||||
"url": "http://files.genshin.org/apngasm/apngasm-cli.7z",
|
||||
"hash": "cebb7eab13d56b5ade45ef50abd16bae4b63a5505192f032593ad67c1d1f2e2c",
|
||||
"bin": [
|
||||
[
|
||||
"apngasm-cli.exe",
|
||||
"apngasm"
|
||||
]
|
||||
]
|
||||
}
|
||||
31
bucket/aria2.json
Normal file
31
bucket/aria2.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"homepage": "https://aria2.github.io/",
|
||||
"license": "GPL2 or later",
|
||||
"version": "1.32.0",
|
||||
"architecture": {
|
||||
"32bit": {
|
||||
"url": "https://github.com/aria2/aria2/releases/download/release-1.32.0/aria2-1.32.0-win-32bit-build1.zip",
|
||||
"hash": "39ae48b561a5e72576592b5776ea57fb04cbf43f67fad1433b0e90d54d251dc2",
|
||||
"extract_dir": "aria2-1.32.0-win-32bit-build1"
|
||||
},
|
||||
"64bit": {
|
||||
"url": "https://github.com/aria2/aria2/releases/download/release-1.32.0/aria2-1.32.0-win-64bit-build1.zip",
|
||||
"hash": "d42f733f18e400bbb7684feeec0f3a487ee73d248435404b4215166513ecb693",
|
||||
"extract_dir": "aria2-1.32.0-win-64bit-build1"
|
||||
}
|
||||
},
|
||||
"bin": "aria2c.exe",
|
||||
"checkver": "<p>Download <a href=\"https://github.com/aria2/aria2[^\"]+\">version ([^<]+)</a>",
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"32bit": {
|
||||
"url": "https://github.com/aria2/aria2/releases/download/release-$version/aria2-$version-win-32bit-build1.zip",
|
||||
"extract_dir": "aria2-$version-win-32bit-build1"
|
||||
},
|
||||
"64bit": {
|
||||
"url": "https://github.com/aria2/aria2/releases/download/release-$version/aria2-$version-win-64bit-build1.zip",
|
||||
"extract_dir": "aria2-$version-win-64bit-build1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
33
bucket/autoit.json
Normal file
33
bucket/autoit.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"homepage": "https://www.autoitscript.com/site/autoit/",
|
||||
"license": "https://www.autoitscript.com/autoit3/docs/license.htm",
|
||||
"version": "3.3.14.2",
|
||||
"url": "https://www.autoitscript.com/files/autoit3/autoit-v3.zip",
|
||||
"hash": "44a2ba6b723cbc5eec389ea07ac43d696aeff01f0f1a62788aed1d1ce992a886",
|
||||
"extract_dir": "install",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"bin": [
|
||||
[
|
||||
"AutoIt3_x64.exe",
|
||||
"autoit"
|
||||
]
|
||||
]
|
||||
},
|
||||
"32bit": {
|
||||
"bin": [
|
||||
[
|
||||
"AutoIt3.exe",
|
||||
"autoit"
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"checkver": {
|
||||
"url": "https://www.autoitscript.com/site/autoit/downloads/",
|
||||
"re": "Latest version:</strong> v([\\d.]+)"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://www.autoitscript.com/files/autoit3/autoit-v3.zip"
|
||||
}
|
||||
}
|
||||
7
bucket/axel.json
Normal file
7
bucket/axel.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": "2.4",
|
||||
"url": "https://github.com/ghuntley/cygwin-axel/raw/master/release/axel-2.4.zip",
|
||||
"homepage": "https://github.com/ghuntley/cygwin-axel/",
|
||||
"hash": "3cce621da5f17ea03e4fcf51916dd4f8928759766f88b4ca5643131d2dd3fed2",
|
||||
"bin": "axel.exe"
|
||||
}
|
||||
28
bucket/bfg.json
Normal file
28
bucket/bfg.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"homepage": "https://rtyley.github.io/bfg-repo-cleaner/",
|
||||
"license": "GPL",
|
||||
"version": "1.12.15",
|
||||
"url": "https://repo1.maven.org/maven2/com/madgag/bfg/1.12.15/bfg-1.12.15.jar",
|
||||
"hash": "330af214a0fed320c591afc1046b0f31e8a438f290da09672973aeaa6411b09d",
|
||||
"suggest": {
|
||||
"JDK": [
|
||||
"extras/oraclejdk",
|
||||
"openjdk"
|
||||
]
|
||||
},
|
||||
"bin": "bfg.ps1",
|
||||
"env_set": {
|
||||
"BFG_HOME": "$dir"
|
||||
},
|
||||
"pre_install": "
|
||||
$exe = 'java -jar $env:BFG_HOME\\bfg-$version.jar $args'
|
||||
write-output $exe | out-file -filepath $dir\\bfg.ps1
|
||||
",
|
||||
"checkver": {
|
||||
"url": "https://search.maven.org/solrsearch/select/?q=g:com.madgag+AND+a:bfg",
|
||||
"jp": "$.response.docs[0].latestVersion"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://repo1.maven.org/maven2/com/madgag/bfg/$version/bfg-$version.jar"
|
||||
}
|
||||
}
|
||||
37
bucket/bochs.json
Normal file
37
bucket/bochs.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"homepage": "http://bochs.sourceforge.net/",
|
||||
"version": "2.6.9",
|
||||
"license": "LGPL",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://sourceforge.net/projects/bochs/files/bochs/2.6.9/bochs-2.6.9-win64.zip",
|
||||
"hash": "01f185885794f7c6b4dab920d6c51685a44ed7c7e5205a806e54df4a61ae2cf9",
|
||||
"bin": [
|
||||
"bochs-win64.exe",
|
||||
"bochsdbg-win64.exe"
|
||||
]
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://sourceforge.net/projects/bochs/files/bochs/2.6.9/bochs-p4-smp-2.6.9-win32.zip",
|
||||
"hash": "2c01495d55cc788105165c3f9f1d68699a884fdbbf7ecbb1d0df9b9641c0c5e9",
|
||||
"bin": [
|
||||
"bochs-p4-smp.exe",
|
||||
"bochsdbg-p4-smp.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
"checkver": {
|
||||
"url": "http://bochs.sourceforge.net/getcurrent.html",
|
||||
"re": "<b>Latest release:<\\/b> Bochs ([\\d.]+)"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://sourceforge.net/projects/bochs/files/bochs/$version/bochs-$version-win64.zip"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://sourceforge.net/projects/bochs/files/bochs/$version/bochs-p4-smp-$version-win32.zip"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
652
bucket/busybox.json
Normal file
652
bucket/busybox.json
Normal file
@@ -0,0 +1,652 @@
|
||||
{
|
||||
"homepage": "https://frippery.org/busybox",
|
||||
"version": "1.26.0-FRP-756",
|
||||
"license": "GPL2",
|
||||
"url": "https://frippery.org/files/busybox/busybox-w32-FRP-756-g9fa1e49.exe#/busybox.exe",
|
||||
"hash": "260c6e2ac8a71a12aca2decfb9475a05a64cbbd734406fa964b5ff2528d7cc85",
|
||||
"bin": [
|
||||
"busybox.exe",
|
||||
[
|
||||
"busybox.exe",
|
||||
"ar",
|
||||
"ar"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"ash",
|
||||
"ash"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"awk",
|
||||
"awk"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"base64",
|
||||
"base64"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"basename",
|
||||
"basename"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"bash",
|
||||
"bash",
|
||||
"-l"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"bunzip2",
|
||||
"bunzip2"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"bzcat",
|
||||
"bzcat"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"bzip2",
|
||||
"bzip2"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"cal",
|
||||
"cal"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"cat",
|
||||
"cat"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"catv",
|
||||
"catv"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"chmod",
|
||||
"chmod"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"cksum",
|
||||
"cksum"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"clear",
|
||||
"clear"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"cmp",
|
||||
"cmp"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"comm",
|
||||
"comm"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"cp",
|
||||
"cp"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"cpio",
|
||||
"cpio"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"cut",
|
||||
"cut"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"date",
|
||||
"date"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"dc",
|
||||
"dc"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"dd",
|
||||
"dd"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"df",
|
||||
"df"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"diff",
|
||||
"diff"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"dirname",
|
||||
"dirname"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"dos2unix",
|
||||
"dos2unix"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"dpkg-deb",
|
||||
"dpkg-deb"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"du",
|
||||
"du"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"echo",
|
||||
"echo"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"ed",
|
||||
"ed"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"egrep",
|
||||
"egrep"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"env",
|
||||
"env"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"expand",
|
||||
"expand"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"expr",
|
||||
"expr"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"false",
|
||||
"false"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"fgrep",
|
||||
"fgrep"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"find",
|
||||
"find"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"fold",
|
||||
"fold"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"ftpget",
|
||||
"ftpget"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"ftpput",
|
||||
"ftpput"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"getopt",
|
||||
"getopt"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"grep",
|
||||
"grep"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"groups",
|
||||
"groups"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"gunzip",
|
||||
"gunzip"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"gzip",
|
||||
"gzip"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"hd",
|
||||
"hd"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"head",
|
||||
"head"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"hexdump",
|
||||
"hexdump"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"id",
|
||||
"id"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"ipcalc",
|
||||
"ipcalc"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"kill",
|
||||
"kill"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"killall",
|
||||
"killall"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"less",
|
||||
"less"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"ln",
|
||||
"ln"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"logname",
|
||||
"logname"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"ls",
|
||||
"ls"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"lzcat",
|
||||
"lzcat"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"lzma",
|
||||
"lzma"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"lzop",
|
||||
"lzop"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"lzopcat",
|
||||
"lzopcat"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"man",
|
||||
"man"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"md5sum",
|
||||
"md5sum"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"mkdir",
|
||||
"mkdir"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"mktemp",
|
||||
"mktemp"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"mv",
|
||||
"mv"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"nc",
|
||||
"nc"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"od",
|
||||
"od"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"patch",
|
||||
"patch"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"pgrep",
|
||||
"pgrep"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"pidof",
|
||||
"pidof"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"printenv",
|
||||
"printenv"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"printf",
|
||||
"printf"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"ps",
|
||||
"ps"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"pwd",
|
||||
"pwd"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"rev",
|
||||
"rev"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"rm",
|
||||
"rm"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"rmdir",
|
||||
"rmdir"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"rpm2cpio",
|
||||
"rpm2cpio"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"sed",
|
||||
"sed"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"seq",
|
||||
"seq"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"sh",
|
||||
"sh"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"sha1sum",
|
||||
"sha1sum"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"sha256sum",
|
||||
"sha256sum"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"sha3sum",
|
||||
"sha3sum"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"sha512sum",
|
||||
"sha512sum"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"shuf",
|
||||
"shuf"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"sleep",
|
||||
"sleep"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"sort",
|
||||
"sort"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"split",
|
||||
"split"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"stat",
|
||||
"stat"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"strings",
|
||||
"strings"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"sum",
|
||||
"sum"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"tac",
|
||||
"tac"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"tail",
|
||||
"tail"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"tar",
|
||||
"tar"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"tee",
|
||||
"tee"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"test",
|
||||
"test"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"touch",
|
||||
"touch"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"tr",
|
||||
"tr"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"true",
|
||||
"true"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"truncate",
|
||||
"truncate"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"uname",
|
||||
"uname"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"uncompress",
|
||||
"uncompress"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"unexpand",
|
||||
"unexpand"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"uniq",
|
||||
"uniq"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"unix2dos",
|
||||
"unix2dos"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"unlink",
|
||||
"unlink"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"unlzma",
|
||||
"unlzma"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"unlzop",
|
||||
"unlzop"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"unxz",
|
||||
"unxz"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"unzip",
|
||||
"unzip"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"usleep",
|
||||
"usleep"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"uudecode",
|
||||
"uudecode"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"uuencode",
|
||||
"uuencode"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"vi",
|
||||
"vi"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"wc",
|
||||
"wc"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"wget",
|
||||
"wget"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"which",
|
||||
"which"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"whoami",
|
||||
"whoami"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"whois",
|
||||
"whois"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"xargs",
|
||||
"xargs"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"xz",
|
||||
"xz"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"xzcat",
|
||||
"xzcat"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"yes",
|
||||
"yes"
|
||||
],
|
||||
[
|
||||
"busybox.exe",
|
||||
"zcat",
|
||||
"zcat"
|
||||
]
|
||||
],
|
||||
"post_install": "
|
||||
if(!(test-path ~/.profile)) {
|
||||
'creating ~/.profile'
|
||||
@\"
|
||||
if [ -e ~/.bashrc ]
|
||||
then
|
||||
source ~/.bashrc
|
||||
fi
|
||||
\"@ | out-file -en oem ~/.profile
|
||||
}
|
||||
"
|
||||
}
|
||||
22
bucket/bzip2.json
Normal file
22
bucket/bzip2.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"version": "1.0.6",
|
||||
"homepage": "http://www.bzip.org/",
|
||||
"architecture": {
|
||||
"32bit": {
|
||||
"url": "https://github.com/philr/bzip2-windows/releases/download/v1.0.6/bzip2-1.0.6-win-x86.zip",
|
||||
"hash": "e9a6d5908e219def07ae6be73383112c5a571b74fbde9bed42ee7eb1523fd727"
|
||||
},
|
||||
"64bit": {
|
||||
"url": "https://github.com/philr/bzip2-windows/releases/download/v1.0.6/bzip2-1.0.6-win-x64.zip",
|
||||
"hash": "f5feefa49e7d3e87ba0ba731ed22b4b0e269f635bec2839827127a98d0a2e192"
|
||||
}
|
||||
},
|
||||
"bin": [
|
||||
"bunzip2.exe",
|
||||
"bzcat.exe",
|
||||
"bzip2.exe",
|
||||
"bzip2recover.exe"
|
||||
],
|
||||
"pre_install": "cp $dir\\bzip2.exe $dir\\bunzip2.exe; cp $dir\\bzip2.exe $dir\\bzcat.exe",
|
||||
"checkver": "The current version is <b>([\\d.]+)"
|
||||
}
|
||||
15
bucket/cacert.json
Normal file
15
bucket/cacert.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"version": "2017-06-07",
|
||||
"homepage": "https://curl.haxx.se/docs/caextract.html",
|
||||
"license": "MPL 2.0",
|
||||
"url": "https://curl.haxx.se/ca/cacert-2017-06-07.pem#/cacert.pem",
|
||||
"hash": "e78c8ab7b4432bd466e64bb942d988f6c0ac91cd785017e465bdc96d42fe9dd0",
|
||||
"checkver": {
|
||||
"url": "https://curl.haxx.se/docs/caextract.html",
|
||||
"re": "cacert-([\\d-]{10}).pem"
|
||||
},
|
||||
"post_install": "if (Test-Path \"$(appdir curl)\") {cp \"$dir\\cacert.pem\" \"$(appdir curl)\\current\\bin\\curl-ca-bundle.crt\"}",
|
||||
"autoupdate": {
|
||||
"url": "https://curl.haxx.se/ca/cacert-$version.pem#/cacert.pem"
|
||||
}
|
||||
}
|
||||
31
bucket/caddy.json
Normal file
31
bucket/caddy.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"version": "0.10.3",
|
||||
"homepage": "http://caddyserver.com",
|
||||
"license": "https://github.com/mholt/caddy/blob/master/LICENSE.txt",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/mholt/caddy/releases/download/v0.10.3/caddy_v0.10.3_windows_amd64.zip",
|
||||
"hash": "28da9b257c288e819f24fb40fecf0b792fc325e274a5f1b4bbc45de20379f70b"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/mholt/caddy/releases/download/v0.10.3/caddy_v0.10.3_windows_386.zip",
|
||||
"hash": "51d2de0ebebfa3519062772f144632de4b6d0348fcb3a394ed5a98e04ab24031"
|
||||
}
|
||||
},
|
||||
"service": "caddy",
|
||||
"bin": "caddy.exe",
|
||||
"post_install": "if(!(test-path \"$persist_dir\\Caddyfile\")) { \"localhost:2015\" | Out-File -encoding \"ASCII\" \"$persist_dir\\Caddyfile\" }",
|
||||
"checkver": {
|
||||
"github": "https://github.com/mholt/caddy"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/mholt/caddy/releases/download/v$version/caddy_v$version_windows_amd64.zip"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/mholt/caddy/releases/download/v$version/caddy_v$version_windows_386.zip"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
19
bucket/casperjs.json
Normal file
19
bucket/casperjs.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"version": "1.1.4",
|
||||
"license": "https://github.com/n1k0/casperjs/blob/master/LICENSE.md",
|
||||
"url": "https://github.com/casperjs/casperjs/archive/1.1.4.zip",
|
||||
"hash": "2d98eecf417f6034394c0ec2dcefb25f47e49342801b2ed21e85b21a4dd0eddc",
|
||||
"homepage": "http://casperjs.org/",
|
||||
"extract_dir": "casperjs-1.1.4",
|
||||
"bin": "bin\\casperjs.exe",
|
||||
"notes": "Requires an installation of phantomjs 1.x
|
||||
|
||||
phantom19 is available in the versions bucket (scoop bucket add versions)",
|
||||
"checkver": {
|
||||
"github": "https://github.com/n1k0/casperjs"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://github.com/casperjs/casperjs/archive/$version.zip",
|
||||
"extract_dir": "casperjs-$version"
|
||||
}
|
||||
}
|
||||
35
bucket/cdrtools.json
Normal file
35
bucket/cdrtools.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"architecture": {
|
||||
"32bit": {
|
||||
"extract_dir": "win32"
|
||||
},
|
||||
"64bit": {
|
||||
"extract_dir": "win64"
|
||||
}
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://sourceforge.net/projects/tumagcc/files/schily-cdrtools-$version.7z"
|
||||
},
|
||||
"bin": [
|
||||
"btcflash.exe",
|
||||
"cdda2wav.exe",
|
||||
"cdrecord.exe",
|
||||
"devdump.exe",
|
||||
"isodebug.exe",
|
||||
"isodump.exe",
|
||||
"isoinfo.exe",
|
||||
"isovfy.exe",
|
||||
"mkhybrid.exe",
|
||||
"mkisofs.exe",
|
||||
"readcd.exe",
|
||||
"rscsi.exe",
|
||||
"scgcheck.exe",
|
||||
"scgskeleton.exe"
|
||||
],
|
||||
"description": "Burn and read CDs, DVDs, and Blu-ray discs",
|
||||
"hash": "f534062cab7585b82bd764f02bc65fb0c7c27ac1615786bfc81c35880ce4acc6",
|
||||
"homepage": "https://sourceforge.net/projects/tumagcc/",
|
||||
"license": "CDDL-1.0/GPL-2.0/LGPL-2.1",
|
||||
"url": "https://sourceforge.net/projects/tumagcc/files/schily-cdrtools-3.01.7z",
|
||||
"version": "3.01"
|
||||
}
|
||||
11
bucket/chromedriver.json
Normal file
11
bucket/chromedriver.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"version": "2.30",
|
||||
"homepage": "https://sites.google.com/a/chromium.org/chromedriver/",
|
||||
"url": "https://chromedriver.storage.googleapis.com/2.30/chromedriver_win32.zip",
|
||||
"hash": "c2f7acc1a49aac791a7692f0ea4a54e4f231e2c1f95428b36049882784b82a10",
|
||||
"bin": "chromedriver.exe",
|
||||
"checkver": "Latest Release: <a href=\"[^\"]+\">ChromeDriver ([\\d.]+)",
|
||||
"autoupdate": {
|
||||
"url": "https://chromedriver.storage.googleapis.com/$version/chromedriver_win32.zip"
|
||||
}
|
||||
}
|
||||
14
bucket/clink.json
Normal file
14
bucket/clink.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"homepage": "https://mridgers.github.io/clink/",
|
||||
"url": "https://github.com/mridgers/clink/releases/download/0.4.8/clink_0.4.8.zip",
|
||||
"version": "0.4.8",
|
||||
"hash": "cc1e07c1000e95ebbe1c6480df53487261e6457a733b925e13665740c14e15aa",
|
||||
"extract_dir": "clink_0.4.8",
|
||||
"bin": [
|
||||
"clink.bat"
|
||||
],
|
||||
"notes": [
|
||||
"Run 'clink inject' to start clink on the current cmd",
|
||||
"Run 'clink autorun' to auto start clink"
|
||||
]
|
||||
}
|
||||
46
bucket/cmake.json
Normal file
46
bucket/cmake.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"homepage": "https://cmake.org/",
|
||||
"version": "3.8.2",
|
||||
"license": "https://cmake.org/licensing/",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://cmake.org/files/v3.8/cmake-3.8.2-win64-x64.zip",
|
||||
"hash": "202c2416c964fb7199e5d7ce92336a44c7ba65d5ccca36246f41d7d09bd8ffe2",
|
||||
"extract_dir": "cmake-3.8.2-win64-x64"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://cmake.org/files/v3.8/cmake-3.8.2-win32-x86.zip",
|
||||
"hash": "3fa45a8ad473a8e0579ec826b3355f864750a7455987ed425a9c6fdf4820b5f2",
|
||||
"extract_dir": "cmake-3.8.2-win32-x86"
|
||||
}
|
||||
},
|
||||
"bin": [
|
||||
"bin/cmake.exe",
|
||||
"bin/cmcldeps.exe",
|
||||
"bin/cpack.exe",
|
||||
"bin/ctest.exe",
|
||||
"bin/cmake-gui.exe"
|
||||
],
|
||||
"checkver": {
|
||||
"re": "Latest\\s+Release\\s+\\(([\\d+.]+)\\)",
|
||||
"url": "https://cmake.org/download/"
|
||||
},
|
||||
"shortcuts": [
|
||||
[
|
||||
"bin/cmake-gui.exe",
|
||||
"cmake-gui"
|
||||
]
|
||||
],
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://cmake.org/files/v$majorVersion.$minorVersion/cmake-$version-win64-x64.zip",
|
||||
"extract_dir": "cmake-$version-win64-x64"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://cmake.org/files/v$majorVersion.$minorVersion/cmake-$version-win32-x86.zip",
|
||||
"extract_dir": "cmake-$version-win32-x86"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
27
bucket/cmder.json
Normal file
27
bucket/cmder.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"homepage": "http://cmder.net",
|
||||
"version": "1.3.2",
|
||||
"license": "MIT",
|
||||
"persist": [
|
||||
"config"
|
||||
],
|
||||
"url": "https://github.com/cmderdev/cmder/releases/download/v1.3.2/cmder_mini.zip",
|
||||
"hash": "477fb784b7b3f382f7de9cd40a4d46a86dc2286b8036e68ad188abebbaea4ad6",
|
||||
"bin": "Cmder.exe",
|
||||
"shortcuts": [
|
||||
[
|
||||
"Cmder.exe",
|
||||
"Cmder"
|
||||
]
|
||||
],
|
||||
"env_set": {
|
||||
"CMDER_ROOT": "$dir",
|
||||
"ConEmuDir": "$dir\\vendor\\conemu-maximus5"
|
||||
},
|
||||
"checkver": {
|
||||
"github": "https://github.com/cmderdev/cmder"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://github.com/cmderdev/cmder/releases/download/v$version/cmder_mini.zip"
|
||||
}
|
||||
}
|
||||
40
bucket/composer.json
Normal file
40
bucket/composer.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"homepage": "https://getcomposer.org/",
|
||||
"license": "https://github.com/composer/composer/blob/master/LICENSE",
|
||||
"version": "1.4.2",
|
||||
"url": "https://getcomposer.org/download/1.4.2/composer.phar",
|
||||
"bin": "composer.ps1",
|
||||
"persist": "home",
|
||||
"env_set": {
|
||||
"COMPOSER_HOME": "$persist_dir\\home"
|
||||
},
|
||||
"env_add_path": "home\\vendor\\bin",
|
||||
"pre_install": "
|
||||
echo 'if($args -eq \"selfupdate\" -or $args -eq \"self-update\") { & scoop update composer }' | out-file $dir\\composer.ps1
|
||||
echo 'else { & php (join-path \"$psscriptroot\" \"composer.phar\") @args }' | out-file $dir\\composer.ps1 -append
|
||||
",
|
||||
"post_install": "
|
||||
$och = \"$env:APPDATA\\Composer\"
|
||||
if(Test-Path $och) {
|
||||
Write-Host -F yellow \"Moving old 'COMPOSER_HOME' to '$persist_dir\\home'\"
|
||||
Move-Item -Force \"$och\\*\" \"$persist_dir\\home\"
|
||||
Remove-Item -Force \"$och\"
|
||||
}
|
||||
",
|
||||
"suggest": {
|
||||
"PHP": [
|
||||
"php",
|
||||
"php-nts"
|
||||
]
|
||||
},
|
||||
"notes": [
|
||||
"'composer selfupdate' is aliased to 'scoop update composer'"
|
||||
],
|
||||
"hash": "6b1945c3ee477f12be508a5bb41a5025d57de5510bcf94855ae6a4d59f3d86f4",
|
||||
"checkver": {
|
||||
"github": "https://github.com/composer/composer"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://getcomposer.org/download/$version/composer.phar"
|
||||
}
|
||||
}
|
||||
8
bucket/concfg.json
Normal file
8
bucket/concfg.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"homepage": "https://github.com/lukesampson/concfg",
|
||||
"version": "0.2016.11.01",
|
||||
"url": "https://github.com/lukesampson/concfg/archive/cb27880092e629e1152c41b122ab591c7ca50332.zip",
|
||||
"hash": "be624dc4e251ccab1a0479d2a55b27c2caac2beaa93bfafed10880f0eaacc4c1",
|
||||
"extract_dir": "concfg-cb27880092e629e1152c41b122ab591c7ca50332",
|
||||
"bin": "bin\\concfg.ps1"
|
||||
}
|
||||
65
bucket/coreutils.json
Normal file
65
bucket/coreutils.json
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"homepage": "http://www.mingw.org/wiki/msys",
|
||||
"license": "GPL2",
|
||||
"version": "5.97.3",
|
||||
"url": [
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.13-2/msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma",
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/gettext/gettext-0.17-2/libintl-0.17-2-msys-dll-8.tar.lzma",
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/libiconv/libiconv-1.13.1-2/libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma",
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/termcap/termcap-0.20050421_1-2/libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma",
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/coreutils/coreutils-5.97-3/coreutils-5.97-3-msys-1.0.13-bin.tar.lzma",
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/coreutils/coreutils-5.97-3/coreutils-5.97-3-msys.RELEASE_NOTES.txt"
|
||||
],
|
||||
"hash": [
|
||||
"41c7d5561662e41da74951f373a08a95db40b27b1246227bbbc13abc44976ea7",
|
||||
"b533de0ee04dc4d53ca745210e41eb9437044ebd367c001f3615092e7214a4a3",
|
||||
"f13de6d2e3c428e7f9a7251c6b01d6f7569e20f7ac126c68c028eb5f542473bb",
|
||||
"62b58fe0880f0972fcc84a819265989b02439c1c5185870227bd25f870f7adb6",
|
||||
"f8c7990416ea16a74ac336dcfe0f596bc46b8724b2d58cf8a3509414220b2366",
|
||||
"256208bca7a86a10bc377bdccfe6fb8f1e1f1868d0d1952a6692ee9f1d985abd"
|
||||
],
|
||||
"bin": [
|
||||
"bin\\basename.exe",
|
||||
"bin\\cat.exe",
|
||||
"bin\\chmod.exe",
|
||||
"bin\\comm.exe",
|
||||
"bin\\cp.exe",
|
||||
"bin\\cut.exe",
|
||||
"bin\\date.exe",
|
||||
"bin\\dirname.exe",
|
||||
"bin\\echo.exe",
|
||||
"bin\\env.exe",
|
||||
"bin\\expr.exe",
|
||||
"bin\\false.exe",
|
||||
"bin\\fold.exe",
|
||||
"bin\\head.exe",
|
||||
"bin\\id.exe",
|
||||
"bin\\install.exe",
|
||||
"bin\\join.exe",
|
||||
"bin\\ln.exe",
|
||||
"bin\\ls.exe",
|
||||
"bin\\md5sum.exe",
|
||||
"bin\\mkdir.exe",
|
||||
"bin\\msysmnt.exe",
|
||||
"bin\\mv.exe",
|
||||
"bin\\od.exe",
|
||||
"bin\\paste.exe",
|
||||
"bin\\printf.exe",
|
||||
"bin\\ps.exe",
|
||||
"bin\\pwd.exe",
|
||||
"bin\\rm.exe",
|
||||
"bin\\rmdir.exe",
|
||||
"bin\\sleep.exe",
|
||||
"bin\\sort.exe",
|
||||
"bin\\split.exe",
|
||||
"bin\\stty.exe",
|
||||
"bin\\tail.exe",
|
||||
"bin\\tee.exe",
|
||||
"bin\\touch.exe",
|
||||
"bin\\tr.exe",
|
||||
"bin\\true.exe",
|
||||
"bin\\uname.exe",
|
||||
"bin\\uniq.exe",
|
||||
"bin\\wc.exe"
|
||||
]
|
||||
}
|
||||
10
bucket/cowsay.json
Normal file
10
bucket/cowsay.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"version": "0.2013.07.19",
|
||||
"homepage": "https://github.com/lukesampson/cowsay-psh",
|
||||
"url": "https://github.com/lukesampson/cowsay-psh/archive/master.zip",
|
||||
"extract_dir": "cowsay-psh-master",
|
||||
"bin": [
|
||||
"cowsay.ps1",
|
||||
"cowthink.ps1"
|
||||
]
|
||||
}
|
||||
10
bucket/csvtosql.json
Normal file
10
bucket/csvtosql.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"version": "v0.1.1-alpha",
|
||||
"license": "https://raw.githubusercontent.com/deevus/CsvToSql/master/UNLICENSE.txt",
|
||||
"url": "https://github.com/deevus/CsvToSql/archive/v0.1.1-alpha.zip",
|
||||
"depends": "gow",
|
||||
"homepage": "https://github.com/deevus/CsvToSql",
|
||||
"hash": "eb248d286cf5fd06c8ff99d527759e153513396baf08f0398a6d34fa1cba1116",
|
||||
"bin": "ConvertCsvTo-Sql.ps1",
|
||||
"extract_dir": "CsvToSql-0.1.1-alpha"
|
||||
}
|
||||
10
bucket/ctags.json
Normal file
10
bucket/ctags.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"homepage": "http://ctags.sourceforge.net/",
|
||||
"version": "5.8",
|
||||
"url": "https://sourceforge.net/projects/ctags/files/ctags/5.8/ctags58.zip",
|
||||
"extract_dir": "ctags58",
|
||||
"bin": "ctags.exe",
|
||||
"hash": "e1f5909ec0c7a58fd2149139fa6a1dc532070a3d919dd183671c57a32f8b243d",
|
||||
"license": "GPL2",
|
||||
"checkver": "Version ([\\d.]+)"
|
||||
}
|
||||
44
bucket/curl.json
Normal file
44
bucket/curl.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"homepage": "https://curl.haxx.se/",
|
||||
"version": "7.54.0",
|
||||
"license": "MIT",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://dl.bintray.com/vszakats/generic/curl-7.54.0-win64-mingw.7z",
|
||||
"hash": "f7d3fd25979489614f8804f9df3b318b369b6b0e1a6860316b86e1386ad2ec8b",
|
||||
"extract_dir": "curl-7.54.0-win64-mingw"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://dl.bintray.com/vszakats/generic/curl-7.54.0-win32-mingw.7z",
|
||||
"hash": "4ef9977ace6a3dfaad87eb4047c0cc0602cf78d70bcf7300671f80d15dfa3b7f",
|
||||
"extract_dir": "curl-7.54.0-win32-mingw"
|
||||
}
|
||||
},
|
||||
"bin": "bin\\curl.exe",
|
||||
"checkver": {
|
||||
"url": "https://curl.haxx.se/download.html",
|
||||
"re": "curl ([\\d.]+)"
|
||||
},
|
||||
"suggest": {
|
||||
"cacert": [
|
||||
"cacert"
|
||||
]
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://dl.bintray.com/vszakats/generic/curl-$version-win64-mingw.7z",
|
||||
"extract_dir": "curl-$version-win64-mingw"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://dl.bintray.com/vszakats/generic/curl-$version-win32-mingw.7z",
|
||||
"extract_dir": "curl-$version-win32-mingw"
|
||||
}
|
||||
},
|
||||
"hash": {
|
||||
"url": "https://api.bintray.com/search/file?subject=vszakats&repo=generic&name=$basename",
|
||||
"mode": "json",
|
||||
"jp": "$.[0].sha256"
|
||||
}
|
||||
}
|
||||
}
|
||||
33
bucket/dart-sass.json
Normal file
33
bucket/dart-sass.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"homepage": "https://github.com/sass/dart-sass",
|
||||
"version": "1.0.0-beta.1",
|
||||
"license": "https://raw.githubusercontent.com/sass/dart-sass/master/LICENSE",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/sass/dart-sass/releases/download/1.0.0-beta.1/dart-sass-1.0.0-beta.1-windows-x64.zip",
|
||||
"hash": "18032cff748cd93da143a058d9207b7da9d98dac4c6efdfcb566d9cb2f38b2f0"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/sass/dart-sass/releases/download/1.0.0-beta.1/dart-sass-1.0.0-beta.1-windows-ia32.zip",
|
||||
"hash": "3532eb10231223e7c59753f8d8c1c2acc76c757923b69b3d1acd25839ef08539"
|
||||
}
|
||||
},
|
||||
"extract_dir": "dart-sass",
|
||||
"bin": [
|
||||
"dart-sass.bat"
|
||||
],
|
||||
"checkver": {
|
||||
"url": "https://github.com/sass/dart-sass/releases/latest",
|
||||
"re": "/releases/tag/(?:v)?([\\d\\w.-]+)"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/sass/dart-sass/releases/download/$version/dart-sass-$version-windows-x64.zip"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/sass/dart-sass/releases/download/$version/dart-sass-$version-windows-ia32.zip"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
36
bucket/dart.json
Normal file
36
bucket/dart.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"version": "1.23.0",
|
||||
"license": "BSD",
|
||||
"homepage": "https://www.dartlang.org/",
|
||||
"extract_dir": "dart-sdk",
|
||||
"env_add_path": [
|
||||
"bin"
|
||||
],
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://storage.googleapis.com/dart-archive/channels/stable/release/1.23.0/sdk/dartsdk-windows-x64-release.zip",
|
||||
"hash": "97f799cd84899d090d8619348c8daf96dc1c3b53f8bab059ba1bf1d4c82074c6"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://storage.googleapis.com/dart-archive/channels/stable/release/1.23.0/sdk/dartsdk-windows-ia32-release.zip",
|
||||
"hash": "e154ab0ba06a0b47d6d080e4c7de74a78076daed2be908ff49bac1691ceff09e"
|
||||
}
|
||||
},
|
||||
"checkver": {
|
||||
"url": "https://storage.googleapis.com/dart-archive/channels/stable/release/latest/VERSION",
|
||||
"jp": "$.version"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://storage.googleapis.com/dart-archive/channels/stable/release/$version/sdk/dartsdk-windows-x64-release.zip"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://storage.googleapis.com/dart-archive/channels/stable/release/$version/sdk/dartsdk-windows-ia32-release.zip"
|
||||
}
|
||||
},
|
||||
"hash": {
|
||||
"url": "$url.sha256sum"
|
||||
}
|
||||
}
|
||||
}
|
||||
9
bucket/dd.json
Normal file
9
bucket/dd.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"homepage": "http://www.chrysocome.net/dd",
|
||||
"license": "http://www.chrysocome.net/gpl",
|
||||
"description": "Allows the flexible copying of data in a win32 environment",
|
||||
"version": "0.6beta3",
|
||||
"url": "http://www.chrysocome.net/downloads/dd-0.6beta3.zip",
|
||||
"hash": "c7a6a4cc4a107030b072fb479173d66e6d1d1098cf740c6da4e9378c16b81c17",
|
||||
"bin": "dd.exe"
|
||||
}
|
||||
16
bucket/devd.json
Normal file
16
bucket/devd.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"homepage": "http://corte.si/posts/devd/intro/index.html",
|
||||
"license": "https://github.com/cortesi/devd/blob/master/LICENSE",
|
||||
"version": "0.7",
|
||||
"url": "https://github.com/cortesi/devd/releases/download/v0.7/devd-0.7-windows64.zip",
|
||||
"hash": "b5a513c89f9fd6fed0984d7cc65bd5c8a1754e2304813135b44443a3ab30ded3",
|
||||
"extract_dir": "devd-0.7-windows64",
|
||||
"bin": "devd.exe",
|
||||
"checkver": {
|
||||
"github": "https://github.com/cortesi/devd"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://github.com/cortesi/devd/releases/download/v$version/devd-$version-windows64.zip",
|
||||
"extract_dir": "devd-$version-windows64"
|
||||
}
|
||||
}
|
||||
40
bucket/diffutils.json
Normal file
40
bucket/diffutils.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"homepage": "http://www.msys2.org",
|
||||
"version": "3.5",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": [
|
||||
"http://repo.msys2.org/msys/x86_64/diffutils-3.5-1-x86_64.pkg.tar.xz",
|
||||
"http://repo.msys2.org/msys/x86_64/msys2-runtime-2.7.0-1-x86_64.pkg.tar.xz",
|
||||
"http://repo.msys2.org/msys/x86_64/libiconv-1.14-2-x86_64.pkg.tar.xz",
|
||||
"http://repo.msys2.org/msys/x86_64/libintl-0.19.7-3-x86_64.pkg.tar.xz"
|
||||
],
|
||||
"hash": [
|
||||
"6feba4594fe39180752213673510041d322be87977b573fc933141ddc8cb7f01",
|
||||
"13921128ec52d0cf14b5b5c518c21c7b937020075607c0b5d96fa49f8eea0bd2",
|
||||
"de1a5b4974b10ddcf35389c9ede615ed4ab93f86854e7355e66d1f39723ca3c8",
|
||||
"8bde823a82608b577c31c82759a8410bd503c5f7ae62843385310b2e4c24b48c"
|
||||
]
|
||||
},
|
||||
"32bit": {
|
||||
"url": [
|
||||
"http://repo.msys2.org/msys/i686/diffutils-3.5-1-i686.pkg.tar.xz",
|
||||
"http://repo.msys2.org/msys/i686/msys2-runtime-2.7.0-1-i686.pkg.tar.xz",
|
||||
"http://repo.msys2.org/msys/i686/libiconv-1.14-2-i686.pkg.tar.xz",
|
||||
"http://repo.msys2.org/msys/i686/libintl-0.19.7-3-i686.pkg.tar.xz"
|
||||
],
|
||||
"hash": [
|
||||
"3b60c994dfcf8fb8e3a61d1c4aab4b23102e16c5d9c5e080761d969bec414ebe",
|
||||
"86574f2e9afe9d295f329fb23feb35ec18505070b3682e76961d9c5910764388",
|
||||
"90502f67f38eb7d709498b9fb4a0e68f2afafafa1fad005e0dec8315d8191b79",
|
||||
"1285d5788987052e133e18b537d9825a7a3cd4ecb738d8cfd5feddc9886ba58a"
|
||||
]
|
||||
}
|
||||
},
|
||||
"bin": [
|
||||
"usr\\bin\\cmp.exe",
|
||||
"usr\\bin\\diff.exe",
|
||||
"usr\\bin\\diff3.exe",
|
||||
"usr\\bin\\sdiff.exe"
|
||||
]
|
||||
}
|
||||
21
bucket/dig.json
Normal file
21
bucket/dig.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"homepage": "https://www.isc.org/",
|
||||
"license": "https://www.isc.org/downloads/software-support-policy/isc-license/",
|
||||
"version": "9.11.0",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "ftp://ftp.isc.org/isc/bind9/9.11.0/BIND9.11.0.x64.zip",
|
||||
"hash": "2cbc44127bbc9d17ed7a2a23c9c1cd5a055c90dcffd8c3384e7f8efe39ed790f"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "ftp://ftp.isc.org/isc/bind9/9.11.0/BIND9.11.0.x86.zip",
|
||||
"hash": "7b92b9e3f9fe4cca69feeed73305151f4bdc09c9cbb5858671da2b7fd8a05fe2"
|
||||
}
|
||||
},
|
||||
"bin": "dig.exe",
|
||||
"suggest": {
|
||||
"vcredist": [
|
||||
"extras/vcredist2012"
|
||||
]
|
||||
}
|
||||
}
|
||||
11
bucket/dnvm.json
Normal file
11
bucket/dnvm.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"version": "latest",
|
||||
"license": "Apache 2.0",
|
||||
"url": "https://raw.githubusercontent.com/aspnet/Home/danroth27/restorednvm/dnvm.ps1",
|
||||
"homepage": "https://github.com/aspnet/Home",
|
||||
"env_set": {
|
||||
"DNX_HOME": "$dir\\.dnx",
|
||||
"DNX_USER_HOME": "$dir\\.dnx"
|
||||
},
|
||||
"bin": "dnvm.ps1"
|
||||
}
|
||||
25
bucket/docker-compose.json
Normal file
25
bucket/docker-compose.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"homepage": "https://github.com/docker/compose",
|
||||
"version": "1.13.0",
|
||||
"license": "Apache",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/docker/compose/releases/download/1.13.0/docker-compose-Windows-x86_64.exe#/docker-compose.exe",
|
||||
"hash": "b933e653cd77f1d990d4dda598f1cc8fe8f128d66485569e828c0976602a8d5e"
|
||||
}
|
||||
},
|
||||
"bin": [
|
||||
[
|
||||
"docker-compose.exe",
|
||||
"docker-compose"
|
||||
]
|
||||
],
|
||||
"checkver": "github",
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/docker/compose/releases/download/$version/docker-compose-Windows-x86_64.exe#/docker-compose.exe"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
35
bucket/docker-machine.json
Normal file
35
bucket/docker-machine.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"homepage": "https://github.com/docker/machine",
|
||||
"version": "0.12.0",
|
||||
"license": "Apache",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/docker/machine/releases/download/v0.12.0/docker-machine-Windows-x86_64.exe#/docker-machine.exe",
|
||||
"hash": "ba2eeee57aa1774e9841ebcb918212ea559e08587e13b152f3f2ca7d9c6f7a25"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/docker/machine/releases/download/v0.12.0/docker-machine-Windows-i386.exe#/docker-machine.exe",
|
||||
"hash": "253e63571ce613d4ab835c4199ffffaa1daf1dbc8bcf284995bc60de1fa67d8c"
|
||||
}
|
||||
},
|
||||
"bin": [
|
||||
[
|
||||
"docker-machine.exe",
|
||||
"docker-machine"
|
||||
]
|
||||
],
|
||||
"checkver": "github",
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/docker/machine/releases/download/v$version/docker-machine-Windows-x86_64.exe#/docker-machine.exe"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/docker/machine/releases/download/v$version/docker-machine-Windows-i386.exe#/docker-machine.exe"
|
||||
}
|
||||
},
|
||||
"hash": {
|
||||
"url": "$baseurl/sha256sum.txt"
|
||||
}
|
||||
}
|
||||
}
|
||||
41
bucket/docker.json
Normal file
41
bucket/docker.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"version": "17.05.0-ce",
|
||||
"license": "https://github.com/docker/docker/blob/master/LICENSE",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://get.docker.com/builds/Windows/x86_64/docker-17.05.0-ce.zip",
|
||||
"hash": "cbb0b47b511023a98dd0c83d76c1f30b315b8381b85b67be355eca4748229031"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://get.docker.com/builds/Windows/i386/docker-17.05.0-ce.zip",
|
||||
"hash": "99820746a362466700718d33ee727b9aea993b9c2e05fb2c53ed606e9f6780f1"
|
||||
}
|
||||
},
|
||||
"homepage": "https://docker.com",
|
||||
"extract_dir": "docker",
|
||||
"bin": [
|
||||
"docker.exe"
|
||||
],
|
||||
"checkver": {
|
||||
"url": "https://github.com/docker/docker/releases/latest",
|
||||
"re": "/releases/tag/(?:v)?([\\d\\w.-]+)"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://get.docker.com/builds/Windows/x86_64/docker-$version.zip"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://get.docker.com/builds/Windows/i386/docker-$version.zip"
|
||||
}
|
||||
}
|
||||
},
|
||||
"notes": [
|
||||
"This is the docker client only. Until the docker daemon can run natively",
|
||||
"on Windows you will need a Virtual Machine such as Boot2Docker or",
|
||||
"Docker Machine",
|
||||
"",
|
||||
"Boot2Docker: https://github.com/boot2docker/windows-installer/releases/",
|
||||
"Docker Machine: http://docs.docker.com/machine/"
|
||||
]
|
||||
}
|
||||
19
bucket/dosbox.json
Normal file
19
bucket/dosbox.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"homepage": "https://www.dosbox.com/",
|
||||
"version": "0.74",
|
||||
"license": "GPL",
|
||||
"url": "https://sourceforge.net/projects/dosbox/files/dosbox/0.74/DOSBox0.74-win32-installer.exe",
|
||||
"hash": "c149cb85f732beb95bf6564d72bdfdd9306f7050edfd9d2cd475420efe3b84fc",
|
||||
"installer": {
|
||||
"args": [
|
||||
"/S",
|
||||
"/D=$dir"
|
||||
]
|
||||
},
|
||||
"bin": [
|
||||
"DOSBox.exe",
|
||||
"SDL.dll",
|
||||
"SDL_net.dll"
|
||||
],
|
||||
"checkver": "Latest version:\\s+<a[^>]+>([\\d.]+)"
|
||||
}
|
||||
15
bucket/dotnet.json
Normal file
15
bucket/dotnet.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"version": "1.1.1",
|
||||
"homepage": "https://www.microsoft.com/net/core#windows",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://go.microsoft.com/fwlink/?linkid=843454#/dl.7z",
|
||||
"hash": "e729afcf3cc69f17ec7968468b399c843b8b8327523e62c03450e4653115cf76"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://go.microsoft.com/fwlink/?linkid=843458#/dl.7z",
|
||||
"hash": "3a8d7316dd774d54e27a332c5d1e73d7813fecd10b670249f480ae917226e444"
|
||||
}
|
||||
},
|
||||
"bin": "dotnet.exe"
|
||||
}
|
||||
34
bucket/doxygen.json
Normal file
34
bucket/doxygen.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"homepage": "http://www.doxygen.nl/",
|
||||
"license": "GPL2",
|
||||
"version": "1.8.13",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.13.windows.x64.bin.zip",
|
||||
"hash": "c59e92ab9f82e156723dd3efb9433948dcb84facc21d6efb50f4d6c2d7aa6c5c"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.13.windows.bin.zip",
|
||||
"hash": "215800d19d0e77fa400694af74685bbd3000463f0d7f18b6c7b743d2d6a1422f"
|
||||
}
|
||||
},
|
||||
"bin": [
|
||||
"doxygen.exe",
|
||||
"doxyindexer.exe",
|
||||
"doxysearch.cgi.exe"
|
||||
],
|
||||
"checkver": {
|
||||
"url": "http://www.doxygen.nl/download.html",
|
||||
"re": "The latest version of doxygen is ([\\d.]+)"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "http://ftp.stack.nl/pub/users/dimitri/doxygen-$version.windows.x64.bin.zip"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "http://ftp.stack.nl/pub/users/dimitri/doxygen-$version.windows.bin.zip"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
15
bucket/editorconfig.json
Normal file
15
bucket/editorconfig.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"version": "0.12.1",
|
||||
"extract_dir": "editorconfig-0.12.1-Windows-x86",
|
||||
"url": "https://excellmedia.dl.sourceforge.net/project/editorconfig/EditorConfig-C-Core/0.12.1/binary-Windows/editorconfig-0.12.1-Windows-x86.zip",
|
||||
"homepage": "http://editorconfig.org/",
|
||||
"hash": "aaf8977253dd72dd12aec2986c822498c1fa1fa96bf8a404b9facfbf9757ff3b",
|
||||
"bin": "bin/editorconfig.exe",
|
||||
"checkver": {
|
||||
"github": "https://github.com/editorconfig/editorconfig-core-c"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://excellmedia.dl.sourceforge.net/project/editorconfig/EditorConfig-C-Core/$version/binary-Windows/editorconfig-$version-Windows-x86.zip",
|
||||
"extract_dir": "editorconfig-$version-Windows-x86"
|
||||
}
|
||||
}
|
||||
19
bucket/elixir.json
Normal file
19
bucket/elixir.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"homepage": "http://elixir-lang.org/",
|
||||
"version": "1.4.4",
|
||||
"depends": "erlang",
|
||||
"url": "https://github.com/elixir-lang/elixir/releases/download/v1.4.4/Precompiled.zip",
|
||||
"hash": "3fc2cc2ec39315d9894a81b9d167029e4a9cfa5bb22edb3d7e0e66971d4e43ed",
|
||||
"bin": [
|
||||
"bin\\elixir.bat",
|
||||
"bin\\elixirc.bat",
|
||||
"bin\\iex.bat",
|
||||
"bin\\mix.bat"
|
||||
],
|
||||
"checkver": {
|
||||
"github": "https://github.com/elixir-lang/elixir"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://github.com/elixir-lang/elixir/releases/download/v$version/Precompiled.zip"
|
||||
}
|
||||
}
|
||||
49
bucket/erlang.json
Normal file
49
bucket/erlang.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"homepage": "http://www.erlang.org",
|
||||
"version": "19.3",
|
||||
"license": "http://www.apache.org/licenses/LICENSE-2.0",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "http://erlang.org/download/otp_win64_19.3.exe",
|
||||
"hash": "e38074ec99da22a04bd00cda83d412e07294dbaf031c2369c195f712caa0cc70"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "http://erlang.org/download/otp_win32_19.3.exe",
|
||||
"hash": "a33964be7e98304a331d294921bea31b45cefa365c5049cc1a3764980b1347cf"
|
||||
}
|
||||
},
|
||||
"bin": [
|
||||
"bin\\erl.exe",
|
||||
"bin\\erlc.exe",
|
||||
"bin\\escript.exe"
|
||||
],
|
||||
"env_set": {
|
||||
"ERLANG_HOME": "$dir"
|
||||
},
|
||||
"installer": {
|
||||
"args": [
|
||||
"/S",
|
||||
"/D=$dir"
|
||||
]
|
||||
},
|
||||
"uninstaller": {
|
||||
"file": "Uninstall.exe",
|
||||
"args": [
|
||||
"/S"
|
||||
]
|
||||
},
|
||||
"checkver": {
|
||||
"url": "http://www.erlang.org/downloads",
|
||||
"re": "DOWNLOAD\\s+OTP ([\\d.]+)"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "http://erlang.org/download/otp_win64_$version.exe"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "http://erlang.org/download/otp_win32_$version.exe"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
24
bucket/eventstore.json
Normal file
24
bucket/eventstore.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"homepage": "https://geteventstore.com/",
|
||||
"license": "BSD 3-Clause",
|
||||
"version": "4.0.1",
|
||||
"url": "http://download.geteventstore.com/binaries/EventStore-OSS-Win-v4.0.1.zip",
|
||||
"hash": "b341e3a7939316a06040e3910c76d01c32f2162781ab81a1bbe28da84bf007cc",
|
||||
"bin": [
|
||||
[
|
||||
"EventStore.ClusterNode.exe",
|
||||
"eventstore"
|
||||
],
|
||||
"EventStore.ClusterNode.exe",
|
||||
"EventStore.PAdmin.exe",
|
||||
"EventStore.Query.exe",
|
||||
"EventStore.TestClient.exe"
|
||||
],
|
||||
"checkver": {
|
||||
"url": "https://geteventstore.com/downloads/",
|
||||
"re": "Get\\s+Event\\s+Store\\s+(\\d+\\.\\d+\\.\\d+)\\s+for\\s+Windows"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "http://download.geteventstore.com/binaries/EventStore-OSS-Win-v$version.zip"
|
||||
}
|
||||
}
|
||||
17
bucket/exiftool.json
Normal file
17
bucket/exiftool.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"homepage": "http://www.sno.phy.queensu.ca/~phil/exiftool/index.html",
|
||||
"version": "10.56",
|
||||
"license": "http://dev.perl.org/licenses/",
|
||||
"url": "https://downloads.sourceforge.net/project/exiftool/exiftool-10.56.zip",
|
||||
"hash": "478d3f122c86210d3f946c57e9f96f7b384754302aa430bdbe3a9cd873ea456c",
|
||||
"bin": [
|
||||
[
|
||||
"exiftool(-k).exe",
|
||||
"exiftool"
|
||||
]
|
||||
],
|
||||
"checkver": "exiftool-([\\d.]+).zip",
|
||||
"autoupdate": {
|
||||
"url": "https://downloads.sourceforge.net/project/exiftool/exiftool-$version.zip"
|
||||
}
|
||||
}
|
||||
29
bucket/far.json
Normal file
29
bucket/far.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"homepage": "https://farmanager.com/",
|
||||
"version": "30b4949",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://farmanager.com/files/Far30b4949.x64.20170503.7z",
|
||||
"hash": "a1d924b3157d48c96a9496fd19b9a4a97ae811e2c2dc69a193cdaec33da150e8"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://farmanager.com/files/Far30b4949.x86.20170503.7z",
|
||||
"hash": "c7ab55a6c83e8f547821f799e49f00c47bc7806dee8d265557172d31630711b9"
|
||||
}
|
||||
},
|
||||
"checkver": {
|
||||
"url": "https://farmanager.com/download.php",
|
||||
"re": "files/Far(?<version>[b\\d]+).x64.(?<date>\\d+).7z"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://farmanager.com/files/Far$version.x64.$matchDate.7z"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://farmanager.com/files/Far$version.x86.$matchDate.7z"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bin": "far.exe"
|
||||
}
|
||||
35
bucket/ffmpeg.json
Normal file
35
bucket/ffmpeg.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"version": "20170605-4705edb",
|
||||
"homepage": "https://ffmpeg.zeranoe.com/builds/",
|
||||
"license": "GPL3",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20170605-4705edb-win64-static.zip",
|
||||
"hash": "2a9779942b53574a85f0c0ce2fc5f1f75ba027c5e13f2543bde6a3d135477f6e",
|
||||
"extract_dir": "ffmpeg-20170605-4705edb-win64-static"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20170605-4705edb-win32-static.zip",
|
||||
"hash": "cc62bbe002aafba388427a1af0cccc0e42d11c63b71223c4387bf10a814ae5de",
|
||||
"extract_dir": "ffmpeg-20170605-4705edb-win32-static"
|
||||
}
|
||||
},
|
||||
"bin": [
|
||||
"bin\\ffmpeg.exe",
|
||||
"bin\\ffplay.exe",
|
||||
"bin\\ffprobe.exe"
|
||||
],
|
||||
"checkver": "value=\"([\\d]{8}-[\\d\\w]+)\"",
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-$version-win64-static.zip",
|
||||
"extract_dir": "ffmpeg-$version-win64-static"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-$version-win32-static.zip",
|
||||
"extract_dir": "ffmpeg-$version-win32-static"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
7
bucket/figlet.json
Normal file
7
bucket/figlet.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"homepage": "https://github.com/lukesampson/figlet",
|
||||
"version": "1.0-go",
|
||||
"url": "https://github.com/lukesampson/figlet/releases/download/go-1.0-win/figlet-go-1.0-win.zip",
|
||||
"hash": "11ee1f4de608d147ab5b61ddb5967730e9b2c1e43f7d2c96582ee260c030e413",
|
||||
"bin": "figlet.exe"
|
||||
}
|
||||
14
bucket/file.json
Normal file
14
bucket/file.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"homepage": "http://gnuwin32.sourceforge.net/packages/file.htm",
|
||||
"version": "5.03",
|
||||
"license": "GPL2",
|
||||
"url": [
|
||||
"https://sourceforge.net/projects/gnuwin32/files/file/5.03/file-5.03-bin.zip",
|
||||
"https://sourceforge.net/projects/gnuwin32/files/file/5.03/file-5.03-dep.zip"
|
||||
],
|
||||
"hash": [
|
||||
"dbd28e191c1bf7e3db08b983e603e79959295717f6fc1032ba97e7a8680c8cf9",
|
||||
"2dbf891e42c642e372e5b21b0528bb5ba3c5b6eeb9fb01fb1e9cc77f2f44a091"
|
||||
],
|
||||
"bin": "bin\\file.exe"
|
||||
}
|
||||
25
bucket/findutils.json
Normal file
25
bucket/findutils.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"homepage": "http://www.mingw.org/wiki/msys",
|
||||
"version": "4.4.2",
|
||||
"license": "GPL2",
|
||||
"url": [
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.13-2/msysCORE-1.0.13-2-msys-1.0.13-bin.tar.lzma",
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/gettext/gettext-0.17-2/libintl-0.17-2-msys-dll-8.tar.lzma",
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/libiconv/libiconv-1.13.1-2/libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma",
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/findutils/findutils-4.4.2-2/findutils-4.4.2-2-msys-1.0.13-bin.tar.lzma",
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/findutils/findutils-4.4.2-2/locate-4.4.2-2-msys-1.0.13-bin.tar.lzma"
|
||||
],
|
||||
"hash": [
|
||||
"41c7d5561662e41da74951f373a08a95db40b27b1246227bbbc13abc44976ea7",
|
||||
"b533de0ee04dc4d53ca745210e41eb9437044ebd367c001f3615092e7214a4a3",
|
||||
"f13de6d2e3c428e7f9a7251c6b01d6f7569e20f7ac126c68c028eb5f542473bb",
|
||||
"779e819b7942dc070c45f4cba633e6a9ae4bfe8b506a3541f4ce86ad0595726d",
|
||||
"3fbb9826feae0698a58c8e1bbaa46caafb2bd07a63c59e33cd4478aee14ee147"
|
||||
],
|
||||
"bin": [
|
||||
"bin\\find.exe",
|
||||
"bin\\oldfind.exe",
|
||||
"bin\\xargs.exe",
|
||||
"bin\\locate.exe"
|
||||
]
|
||||
}
|
||||
14
bucket/flatc.json
Normal file
14
bucket/flatc.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"homepage": "https://google.github.io/flatbuffers/index.html",
|
||||
"license": "Apache2",
|
||||
"version": "1.6.0",
|
||||
"url": "https://github.com/google/flatbuffers/releases/download/v1.6.0/flatc_windows_exe.zip",
|
||||
"bin": "flatc.exe",
|
||||
"hash": "e4ac8cdfa5e90c92e77715e998b9210fa86128b84a38a0fe9fec04c5b5f941c9",
|
||||
"checkver": {
|
||||
"github": "https://github.com/google/flatbuffers"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://github.com/google/flatbuffers/releases/download/v$version/flatc_windows_exe.zip"
|
||||
}
|
||||
}
|
||||
15
bucket/flow.json
Normal file
15
bucket/flow.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"version": "0.47.0",
|
||||
"license": "BSD",
|
||||
"url": "https://github.com/facebook/flow/releases/download/v0.47.0/flow-win64-v0.47.0.zip",
|
||||
"homepage": "https://flowtype.org/",
|
||||
"hash": "d0f2adbe449f678b5c565b102d2ff6f4953cc39d528ddc3e8e63a0e7e543c0dd",
|
||||
"bin": "flow.exe",
|
||||
"extract_dir": "flow",
|
||||
"checkver": {
|
||||
"github": "https://github.com/facebook/flow"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://github.com/facebook/flow/releases/download/v$version/flow-win64-v$version.zip"
|
||||
}
|
||||
}
|
||||
15
bucket/forge.json
Normal file
15
bucket/forge.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"homepage": "http://forge.run",
|
||||
"version": "1.4.2",
|
||||
"url": "https://github.com/fsharp-editing/Forge/releases/download/1.4.2/forge.zip",
|
||||
"hash": "b977a69a55883a45342e65f940446fadc04895b78b2b92c4aabe3612a89af063",
|
||||
"bin": [
|
||||
"bin\\forge.exe"
|
||||
],
|
||||
"checkver": {
|
||||
"github": "https://github.com/fsharp-editing/Forge"
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://github.com/fsharp-editing/Forge/releases/download/$version/forge.zip"
|
||||
}
|
||||
}
|
||||
15
bucket/fossil.json
Normal file
15
bucket/fossil.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"homepage": "https://www.fossil-scm.org/",
|
||||
"version": "2.2",
|
||||
"license": "https://www.fossil-scm.org/index.html/doc/trunk/COPYRIGHT-BSD2.txt",
|
||||
"hash": "507b08fa84d944b08aa30aa1aadc23efea9b049e2848341f6c66e62baa753d05",
|
||||
"url": "https://www.fossil-scm.org/index.html/uv/fossil-w32-2.2.zip",
|
||||
"bin": "fossil.exe",
|
||||
"checkver": {
|
||||
"url": "https://www.fossil-scm.org/index.html/uv/download.html",
|
||||
"re": "Version ([\\d.]+)\""
|
||||
},
|
||||
"autoupdate": {
|
||||
"url": "https://www.fossil-scm.org/index.html/uv/fossil-w32-$version.zip"
|
||||
}
|
||||
}
|
||||
29
bucket/fzf.json
Normal file
29
bucket/fzf.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"homepage": "https://github.com/junegunn/fzf",
|
||||
"version": "0.16.8",
|
||||
"license": "MIT",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/junegunn/fzf-bin/releases/download/0.16.8/fzf-0.16.8-windows_amd64.zip",
|
||||
"hash": "dc2e2a78b8880522b2ae67ce803f89c229340b85cae3089e2870d872ebbd2b92"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/junegunn/fzf-bin/releases/download/0.16.8/fzf-0.16.8-windows_386.zip",
|
||||
"hash": "259da25ed6030ba257472b89466d0c67f76df700d8dbbe720a42f818ba3288de"
|
||||
}
|
||||
},
|
||||
"bin": "fzf.exe",
|
||||
"checkver": {
|
||||
"github": "https://github.com/junegunn/fzf-bin"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/junegunn/fzf-bin/releases/download/$version/fzf-$version-windows_amd64.zip"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/junegunn/fzf-bin/releases/download/$version/fzf-$version-windows_386.zip"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
22
bucket/gawk.json
Normal file
22
bucket/gawk.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"homepage": "http://www.mingw.org/wiki/MSYS",
|
||||
"version": "3.1.7",
|
||||
"license": "GPL3",
|
||||
"url": [
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/gawk/gawk-3.1.7-2/gawk-3.1.7-2-msys-1.0.13-bin.tar.lzma",
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.18-1/msysCORE-1.0.18-1-msys-1.0.18-bin.tar.lzma",
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/gettext/gettext-0.18.1.1-1/libintl-0.18.1.1-1-msys-1.0.17-dll-8.tar.lzma",
|
||||
"https://sourceforge.net/projects/mingw/files/MSYS/Base/libiconv/libiconv-1.14-1/libiconv-1.14-1-msys-1.0.17-dll-2.tar.lzma"
|
||||
],
|
||||
"hash": [
|
||||
"eb15478ea76e75b666ad7fc7049de21b9f487e0e1ea0e96d40953a477e91c3dd",
|
||||
"4e262a414f238773b311c8bb55a52e62743c06e0e55b319ca5b47e3e306464d5",
|
||||
"29db8c969661c511fbe2a341ab25c993c5f9c555842a75d6ddbcfa70dec16910",
|
||||
"196921e8c232259c8e6a6852b9ee8d9ab2d29a91419f0c8dc27ba6f034231683"
|
||||
],
|
||||
"bin": [
|
||||
"bin\\awk.exe",
|
||||
"bin\\gawk.exe",
|
||||
"bin\\pgawk.exe"
|
||||
]
|
||||
}
|
||||
20
bucket/gcc.json
Normal file
20
bucket/gcc.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"homepage": "http://mingw-w64.org",
|
||||
"version": "6.3.0",
|
||||
"license": "GPL3",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/6.3.0/threads-posix/seh/x86_64-6.3.0-release-posix-seh-rt_v5-rev1.7z",
|
||||
"hash": "2d0e72340ffa14916d4469db25c37889e477f8f1f49ba4f77155830ddc1dca89",
|
||||
"extract_dir": "mingw64"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/6.3.0/threads-posix/dwarf/i686-6.3.0-release-posix-dwarf-rt_v5-rev1.7z",
|
||||
"hash": "8f7381e8ed61c438d36d33ae2f514a7ca8065c44dcf6801847fd425f71a9ee1d",
|
||||
"extract_dir": "mingw32"
|
||||
}
|
||||
},
|
||||
"env_add_path": "bin",
|
||||
"notes": "The 64bit version is built with Structured Exception Handling (SEH), the 32bit is built with DWARF.
|
||||
Both 64bit and 32bit support Posix threading model"
|
||||
}
|
||||
17
bucket/gdb.json
Normal file
17
bucket/gdb.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"homepage": "http://tdm-gcc.tdragon.net/",
|
||||
"version": "7.9.1",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://sourceforge.net/projects/tdm-gcc/files/GDB/gdb-7.9.1-tdm64-2.zip",
|
||||
"hash": "89186aa83143f47902b52f5673dd32421ec9c221e53e3227fd065a7e86c8c6f5",
|
||||
"extract_dir": "gdb64"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://sourceforge.net/projects/tdm-gcc/files/GDB/gdb32-7.9.1-tdm-1.zip",
|
||||
"hash": "715604034bb269ecbfaf4577addac51b8ba798f93b2eca31cb21b114b7bc46e8",
|
||||
"extract_dir": "gdb32"
|
||||
}
|
||||
},
|
||||
"env_add_path": "bin"
|
||||
}
|
||||
44
bucket/ghostscript.json
Normal file
44
bucket/ghostscript.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"homepage": "http://www.ghostscript.com",
|
||||
"version": "9.21",
|
||||
"license": "http://www.gnu.org/licenses/agpl-3.0.html",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs921/gs921w64.exe#/dl.7z",
|
||||
"hash": "41bf242d0e4303f329f4b67fc0c556885fe0a5d4012cf5c1e7ddc62a5d25aba9",
|
||||
"bin": [
|
||||
"bin\\gswin64.exe",
|
||||
"bin\\gswin64c.exe"
|
||||
]
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs921/gs921w32.exe#/dl.7z",
|
||||
"hash": "75f5983ac23fbc26760f1033062ec914e7dbafcb029e47e54e77a762ee934089",
|
||||
"bin": [
|
||||
"bin\\gswin32.exe",
|
||||
"bin\\gswin32c.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
"env_add_path": [
|
||||
"bin",
|
||||
"lib"
|
||||
],
|
||||
"checkver": {
|
||||
"url": "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/latest",
|
||||
"re": "Ghostscript\\/GhostPDL ([\\d.]+)"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs$cleanVersion/gs$cleanVersionw64.exe#/dl.7z"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs$cleanVersion/gs$cleanVersionw32.exe#/dl.7z"
|
||||
}
|
||||
},
|
||||
"hash": {
|
||||
"url": "$baseurl/SHA256SUMS"
|
||||
}
|
||||
}
|
||||
}
|
||||
12
bucket/gibo.json
Normal file
12
bucket/gibo.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"version": "1.0.4",
|
||||
"homepage": "https://github.com/simonwhitaker/gibo",
|
||||
"license": "https://github.com/simonwhitaker/gibo/blob/master/UNLICENSE",
|
||||
"description": "gibo (short for .gitignore boilerplates) is a shell script to help you easily access .gitignore boilerplates from github.com/github/gitignore.",
|
||||
"url": "https://github.com/simonwhitaker/gibo/archive/1.0.4.zip",
|
||||
"hash": "868144f463c82ede0159065940b893cd0b586d766b1349caa62faa2ec5d940fc",
|
||||
"extract_dir": "gibo-1.0.4",
|
||||
"bin": [
|
||||
"gibo.bat"
|
||||
]
|
||||
}
|
||||
34
bucket/git-lfs.json
Normal file
34
bucket/git-lfs.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"homepage": "https://git-lfs.github.com/",
|
||||
"version": "2.1.1",
|
||||
"license": "MIT",
|
||||
"architecture": {
|
||||
"32bit": {
|
||||
"url": "https://github.com/github/git-lfs/releases/download/v2.1.1/git-lfs-windows-386-2.1.1.zip",
|
||||
"hash": "897571c2b8aa777d011e7c5496735e9dcb2da809faa741b113169a5cb04650bd",
|
||||
"extract_dir": "git-lfs-windows-386-2.1.1"
|
||||
},
|
||||
"64bit": {
|
||||
"url": "https://github.com/github/git-lfs/releases/download/v2.1.1/git-lfs-windows-amd64-2.1.1.zip",
|
||||
"hash": "0866259d6b097f8ff379326f798a93034b61952382011671b80ecf4cc733de57",
|
||||
"extract_dir": "git-lfs-windows-amd64-2.1.1"
|
||||
}
|
||||
},
|
||||
"depends": "git",
|
||||
"bin": "git-lfs.exe",
|
||||
"checkver": {
|
||||
"github": "https://github.com/github/git-lfs"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"32bit": {
|
||||
"url": "https://github.com/github/git-lfs/releases/download/v$version/git-lfs-windows-386-$version.zip",
|
||||
"extract_dir": "git-lfs-windows-386-$version"
|
||||
},
|
||||
"64bit": {
|
||||
"url": "https://github.com/github/git-lfs/releases/download/v$version/git-lfs-windows-amd64-$version.zip",
|
||||
"extract_dir": "git-lfs-windows-amd64-$version"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
30
bucket/git-town.json
Normal file
30
bucket/git-town.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"homepage": "http://www.git-town.com/",
|
||||
"version": "4.1.2",
|
||||
"license": "MIT",
|
||||
"architecture": {
|
||||
"32bit": {
|
||||
"url": "https://github.com/Originate/git-town/releases/download/v4.1.2/git-town-windows-386.exe#/git-town.exe",
|
||||
"hash": "9c62977c264cace211fda085b573137338ff5bb634e795566d1ed546127b21aa"
|
||||
},
|
||||
"64bit": {
|
||||
"url": "https://github.com/Originate/git-town/releases/download/v4.1.2/git-town-windows-amd64.exe#/git-town.exe",
|
||||
"hash": "7cb289ea9b2880ed580c9ab41de41b2af38cbfd3624a667f4ae0cb4fe9c4ef1e"
|
||||
}
|
||||
},
|
||||
"depends": "git",
|
||||
"bin": "git-town.exe",
|
||||
"checkver": {
|
||||
"github": "https://github.com/Originate/git-town"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"32bit": {
|
||||
"url": "https://github.com/Originate/git-town/releases/download/v$version/git-town-windows-386.exe#/git-town.exe"
|
||||
},
|
||||
"64bit": {
|
||||
"url": "https://github.com/Originate/git-town/releases/download/v$version/git-town-windows-amd64.exe#/git-town.exe"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
23
bucket/git-up.json
Normal file
23
bucket/git-up.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"homepage": "https://github.com/msiemens/PyGitUp",
|
||||
"license": "https://github.com/msiemens/PyGitUp/blob/master/LICENCE",
|
||||
"version": "1.4.1",
|
||||
"url": "https://github.com/msiemens/PyGitUp/archive/v1.4.1.zip",
|
||||
"hash": "6e673c873d8d7fdb81537ae25ae57462f868e4a4348c9c5d12fb17d5f7a7a4a8",
|
||||
"extract_dir": "PyGitUp-1.4.1",
|
||||
"depends": "python",
|
||||
"post_install": "
|
||||
pushd $dir
|
||||
try {
|
||||
scoop reset python
|
||||
iex \"$(scoop which python) setup.py install\"
|
||||
}
|
||||
finally {
|
||||
popd
|
||||
}",
|
||||
"checkver": "github",
|
||||
"autoupdate": {
|
||||
"url": "https://github.com/msiemens/PyGitUp/archive/v$version.zip",
|
||||
"extract_dir": "PyGitUp-$version"
|
||||
}
|
||||
}
|
||||
47
bucket/git-with-openssh.json
Normal file
47
bucket/git-with-openssh.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"_comment": "Maintainers: when updating this manifest to a new version, you might like to also update git.json",
|
||||
"homepage": "https://git-for-windows.github.io/",
|
||||
"license": "GPL2",
|
||||
"version": "2.13.0.windows.1",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v2.13.0.windows.1/PortableGit-2.13.0-64-bit.7z.exe#/dl.7z",
|
||||
"hash": "1d6008cb6fec817a302d4b59921423ba1f6db2677c6b519c20e9ca2cacc7c220"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v2.13.0.windows.1/PortableGit-2.13.0-32-bit.7z.exe#/dl.7z",
|
||||
"hash": "119c95b4416ca1100a4feee0d75ceaf3d41962b0038620c04a62dd787e80e5f2"
|
||||
}
|
||||
},
|
||||
"bin": [
|
||||
"cmd\\git.exe",
|
||||
"cmd\\gitk.exe",
|
||||
"cmd\\git-gui.exe",
|
||||
"git-bash.exe",
|
||||
"usr\\bin\\ssh.exe",
|
||||
"usr\\bin\\sshd.exe",
|
||||
"usr\\bin\\scp.exe",
|
||||
"usr\\bin\\sftp.exe",
|
||||
"usr\\bin\\ssh-add.exe",
|
||||
"usr\\bin\\ssh-agent.exe",
|
||||
"usr\\bin\\ssh-keygen.exe",
|
||||
"usr\\bin\\ssh-keyscan.exe"
|
||||
],
|
||||
"post_install": [
|
||||
"git config --global credential.helper manager"
|
||||
],
|
||||
"checkver": {
|
||||
"url": "https://github.com/git-for-windows/git/releases/latest",
|
||||
"re": "v(?<version>[\\d\\w.]+)/PortableGit-(?<short>[\\d.]+).*\\.exe"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v$matchVersion/PortableGit-$matchShort-64-bit.7z.exe#/dl.7z"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v$matchVersion/PortableGit-$matchShort-32-bit.7z.exe#/dl.7z"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
48
bucket/git.json
Normal file
48
bucket/git.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"_comment": "Maintainers: when updating this manifest to a new version, you might like to also update git-with-openssh.json",
|
||||
"homepage": "https://git-for-windows.github.io/",
|
||||
"license": "GPL2",
|
||||
"version": "2.13.0.windows.1",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v2.13.0.windows.1/PortableGit-2.13.0-64-bit.7z.exe#/dl.7z",
|
||||
"hash": "1d6008cb6fec817a302d4b59921423ba1f6db2677c6b519c20e9ca2cacc7c220"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v2.13.0.windows.1/PortableGit-2.13.0-32-bit.7z.exe#/dl.7z",
|
||||
"hash": "119c95b4416ca1100a4feee0d75ceaf3d41962b0038620c04a62dd787e80e5f2"
|
||||
}
|
||||
},
|
||||
"bin": [
|
||||
"cmd\\git.exe",
|
||||
"cmd\\gitk.exe",
|
||||
"cmd\\git-gui.exe",
|
||||
"git-bash.exe"
|
||||
],
|
||||
"post_install": [
|
||||
"git config --global credential.helper manager"
|
||||
],
|
||||
"notes": "To get Git to recognise OpenSSH, you will need to run
|
||||
|
||||
scoop install openssh
|
||||
[environment]::setenvironmentvariable('GIT_SSH', (resolve-path (scoop which ssh)), 'USER')
|
||||
|
||||
and then restart powershell.",
|
||||
"checkver": {
|
||||
"url": "https://github.com/git-for-windows/git/releases/latest",
|
||||
"re": "v(?<version>[\\d\\w.]+)/PortableGit-(?<short>[\\d.]+).*\\.exe"
|
||||
},
|
||||
"env_set": {
|
||||
"GIT_INSTALL_ROOT": "$dir"
|
||||
},
|
||||
"autoupdate": {
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v$matchVersion/PortableGit-$matchShort-64-bit.7z.exe#/dl.7z"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/git-for-windows/git/releases/download/v$matchVersion/PortableGit-$matchShort-32-bit.7z.exe#/dl.7z"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
14
bucket/git19.json
Normal file
14
bucket/git19.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"homepage": "https://git-for-windows.github.io/",
|
||||
"license": "GPL2",
|
||||
"version": "1.9.5-preview20150319",
|
||||
"url": "https://github.com/msysgit/msysgit/releases/download/Git-1.9.5-preview20150319/PortableGit-1.9.5-preview20150319.7z",
|
||||
"hash": "26261872847b18d171a197c8e4b3f4c0e60b4310c4b8ef1f4d9884950288aa7c",
|
||||
"bin": [
|
||||
"cmd\\git.exe",
|
||||
"cmd\\gitk.cmd"
|
||||
],
|
||||
"post_install": [
|
||||
"git config --global credential.helper wincred"
|
||||
]
|
||||
}
|
||||
7
bucket/gitignore.json
Normal file
7
bucket/gitignore.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"homepage": "https://github.com/lukesampson/psutils",
|
||||
"version": "0.2015.08.26",
|
||||
"url": "https://raw.githubusercontent.com/lukesampson/psutils/3c67dbf56a0e541bf928b9a8811dc4c627d8230c/gitignore.ps1",
|
||||
"hash": "9a08d37386219add0bf79fe6293ab02f5dfdce6ece95173c003bdb96a8016533",
|
||||
"bin": "gitignore.ps1"
|
||||
}
|
||||
21
bucket/glide.json
Normal file
21
bucket/glide.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"homepage": "https://glide.sh/",
|
||||
"license": "https://github.com/Masterminds/glide/blob/master/LICENSE",
|
||||
"version": "0.12.3",
|
||||
"architecture": {
|
||||
"64bit": {
|
||||
"url": "https://github.com/Masterminds/glide/releases/download/v0.12.3/glide-v0.12.3-windows-amd64.zip",
|
||||
"hash": "5F10BC68D533269315B510DEA924724A0989598C43228B1D69ED7308B2E80406",
|
||||
"extract_dir": "windows-amd64"
|
||||
},
|
||||
"32bit": {
|
||||
"url": "https://github.com/Masterminds/glide/releases/download/v0.12.3/glide-v0.12.3-windows-386.zip",
|
||||
"hash": "6A9082A55F1605EF75EA6862E4849D581D8883E9BF1A76872434928AEA71DE38",
|
||||
"extract_dir": "windows-386"
|
||||
}
|
||||
},
|
||||
"bin": "glide.exe",
|
||||
"checkver": {
|
||||
"github": "https://github.com/Masterminds/glide"
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user