* Add nullity check and alread_in_local_bucket check
* update CHANGELOG
* Use foreach instead of ForEach-Object
* changelog
* update help
* refine the info and warning when adding an already-added bucket
* Update lib/buckets.ps1
Make warning clearer
Co-authored-by: Rashil Gandhi <46838874+rashil2000@users.noreply.github.com>
Co-authored-by: Rashil Gandhi <rashil2000@gmail.com>
Co-authored-by: Rashil Gandhi <46838874+rashil2000@users.noreply.github.com>
IntelliJ is putting a project file in the buckets folder when setting up a project there. The bucket lookup then tries to open this as a folder as it lacks directory filter.
- Add preparing changes for extracting the main bucket to https://github.com/scoopinstaller/scoop-main
- Download main bucket on installation
- Add check_main_bucket function
- Add main bucket to buckets.json
- Add docker-compose.yml with default debugging image
- Remove old TODOs
- Refactor bucketdir -> Find-BucketDirectory
- Remove redundant .vscode settings
* buckets: Move function into lib from lib-exec
There is no reason to have it inside lib-exec since, it's all internal functions, which could be used inside other code
lib-exec scripts should be slimmed as possible, as they are only code runners with some validation
* Fix whitespace
- Closes#2531
Actual behaviour is kept and nothing is broken.
If external bucket contains `bucket` folder it's used for finding manifests.
How to test:
1. Create folder `TestBucket` in `$env:SCOOP\buckets`
1. Create manifest `CosiTest.json` with hello manifest # Or some other name which definetely cannot exists❗
1. execute `.\bin\scoop.ps1 install CosiTest` within this branch
1. Installing done
1. `.\bin\scoop.ps1 uninstall CosiTest`
1. Create folder `bucket` in `TestBucket` directory and copy CosiTest.json as `bucket\CosiTestBucket.json`
1. `.\bin\scoop.ps1 install CosiTest`
1. Installation will failed with `Couldn't find manifest for 'CosiTest'.`
1. `.\bin\scoop.ps1 install CosiTestBucket`
1. Installation Done
1. `.\bin\scoop.ps1 uninstall CosiTestBucket`
1. Unnstallation Done
* Add show_app() function for displaying `app/bucket@version`
* Add option to skip hash check on install/update
Allows users to install an app when the manifest provides an outdated hash
* Show filename instead of robocopy output when moving fails
* Add new_issue_msg() for nicer error messages (with link bucket repo)
- returns a message with a link to the buckets GitHub repository
- clicking on the link opens a new issues with a predefined title
* Use new_issue_msg() for errors while moving files
- this removes the unreadable robocopy error dumps
* Use new_issue_msg() error handling for check_hash()
* Show robocopy exit code
By using githubs api we can search known buckets that haven't been added
to the local scoop instance. When a local search doesn't return any
results, other known buckets will be searched via github. If the rate
limit has been reached (60 per hour as of impl) the search won't occur.
* makes changes to almost all main repo files to be in accordance with .editorconfig
* some files in "test\fixtures\..." were left alone to avoid breaking tests
* NOTE: whitespace changes *only* (`git diff -b` shows no changes)