694 Commits

Author SHA1 Message Date
Chris Tompkinson
90488ed848 rerun tests due to failure 2020-03-26 10:40:04 +00:00
Chris Tompkinson
6d5e37654e
Update Library/Homebrew/download_strategy.rb
Co-Authored-By: Mike McQuaid <mike@mikemcquaid.com>
2020-03-18 14:29:36 +00:00
Chris Tompkinson
0f10d7ba40 use even more concise method for header and headers 2020-03-17 14:32:50 +00:00
Chris Tompkinson
278bba0523 Use concise method for both header and headers 2020-03-12 11:32:47 +00:00
Chris Tompkinson
38da4dcac0 Add headers option to URLs in forumlas 2020-03-10 10:16:25 +00:00
Gautham Goli
acde828a45 ARGV: Replace ARGV.verbose? with Homebrew.args.verbose? 2020-02-02 14:00:04 +01:00
Mike McQuaid
dccedbf104
download_strategy: use (more consistent) TypeError.
Rather than a base `RuntimeError`.

Fixes https://github.com/Homebrew/brew/issues/6839
2019-12-16 11:34:31 +00:00
Nathan
5400883bd9 Upped the timeout for curl to 15 seconds 2019-11-16 10:16:00 -06:00
Issy Long
1f6168fe8a
Change regexp.match?(string) to string.match?(regexp) everywhere
- Only try to call `.match?` on strings that aren't nil.
2019-10-13 23:22:51 +01:00
Issy Long
b78028b9c2
Auto-fix Performance/RegexpMatch offenses 2019-10-13 16:04:26 +01:00
沙漠之子
52511d3f77
Modify curl's header option -H to --header 2019-10-07 18:56:03 +08:00
沙漠之子
e1a592c76c
Adding the header option to CurlDownloadStrategy.
It's easy to access github private resources later through specific `header` settings.
e.g.
```
cask 'XXXX' do
...
  url "https://raw.githubusercontent.com/....",
      header : "Authorization: token #{ENV['HOMEBREW_GITHUB_API_TOKEN']}"
...
end
 ```
2019-10-07 16:19:33 +08:00
Melvyn Depeyrot
cf040149c4
Respect ARGV.verbose
Co-Authored-By: Mike McQuaid <mike@mikemcquaid.com>
2019-10-02 07:03:13 -07:00
Melvyn Depeyrot
554aca9522
Quiet SVN output 2019-10-01 17:25:52 -07:00
Markus Reiter
ff7c9ef1b9 Add fallback for out-of-spec Last-Modified header. 2019-08-20 03:18:12 +02:00
Mike McQuaid
dca43851af
download_strategy: fix brew style, refactor. 2019-07-16 21:10:36 +01:00
Markus Reiter
0a0672fade Don't URL-encode cookies. 2019-05-31 23:39:59 +02:00
Markus Reiter
b12623f4eb Don't redownload “latest” casks unnecessarily. 2019-05-31 20:50:31 +02:00
Joe George
2d89e48bbc
Fix #6188
Add trailing -- to git reset when performing a branch reset to remove
ambiguity between revision and file
2019-05-31 08:58:17 -04:00
Mike McQuaid
c4f72312ce
Fixup brew style failures. 2019-04-30 09:19:18 +01:00
Mike McQuaid
36dbad3922
Add frozen_string_literal to all files. 2019-04-20 13:27:36 +09:00
Markus Reiter
4576fb0a68 Force GET for head requests. 2019-04-03 12:08:15 +02:00
Mike McQuaid
20e4262fb9
unpack_strategy: prioritise extension instead.
Instead of only looking at the extension when invoked as part of
Homebrew's formulae' download strategies instead prioritise the
extension if it actually exists. When it does not, fall back to the
magic detection logic which is likely to be more reliable.

Fixes https://github.com/Homebrew/brew/issues/5895
2019-04-03 10:32:29 +01:00
Mike McQuaid
d64429a736
rubocop: enable Style/IfUnlessModifier. 2019-02-21 12:55:49 +00:00
Mike McQuaid
0c44498581
download_strategy: more robust filename content encoding handling.
Fixes #5713.
2019-02-13 13:29:37 +00:00
Markus Reiter
de5b35876f Use Mechanize to parse Content-Disposition. 2019-01-30 04:15:34 +01:00
Kevin Abel
8fddd87472
Resource, CurlDownloadStrategy: Deduplicate the curl HEAD requests
Fixes #5357

* Eliminates getting a new strategy instance via Resource methods
* only call resolve_url_basename_time once and store the time result as
an instance variable for reuse
2018-12-16 13:56:58 -06:00
Chongyu Zhu
6f8d81e780
GitDownloadStrategy: disable automatic tag following 2018-12-12 19:42:12 +08:00
EricFromCanada
5e2f87f7ac CurlDownloadStrategy: handle Location indicating the current dir.
If a response contains a Location header starting with `./`, substitute just final component of the URL path with the given filename.
2018-11-22 19:24:30 -05:00
Markus Reiter
eddbab6a1c
Merge pull request #5217 from reitermarkus/download-time
Check if cached downloads are up-to-date.
2018-11-04 18:06:30 +01:00
Mike McQuaid
737b84b54b
brew style --fix fixes. 2018-11-02 17:29:23 +00:00
Markus Reiter
3d805295eb Check if cached downloads are up-to-date. 2018-11-01 20:29:18 +01:00
Michael Ripley
1f9332611f Nil error when mirror download fails
This issue causes method in a Nil object to be read when a mirror download fails. In my case, this occurs due to my office's proxy blocking certain mirrors. This patch fixes the Nil access, exposing a more helpful error message.

## Before patch
```
$ brew install maven
Error: An exception occurred within a child process:
  NoMethodError: undefined method `unlock' for nil:NilClass
```

## After patch
```
$ brew install maven
Error: An exception occurred within a child process:
  DownloadError: Failed to download resource "maven"
Download failed: Couldn't determine mirror, try again later.
```

## Steps to reproduce
1.  Use brew 1.8.0
2.  Ensure maven is not installed:
    ```
    brew remove maven
    ```
3.  Ensure the download is not cached:
    ```
    rm "$HOME/Library/Caches/Homebrew/downloads/*--apache-maven-*-bin.tar.gz"
    ```
4.  Make the mirrors unreachable by pointing them at a nonfunctional proxy:
    ```
    export http{,s}_proxy=http://localhost:8080
    export no_proxy=*.github.com,*.brew.sh
    ```
5.  Attempt package installation
    ```
    brew install maven
    ```
2018-10-29 14:31:37 -05:00
Markus Reiter
b0742db4fa Support Content-Disposition: inline. 2018-10-21 05:56:02 +02:00
Mike McQuaid
599ecc9b5a
Deprecate unused download strategies
Download the unused, private download strategies. These are a better fit
for being declared in the formulae and/or taps that use them rather than
in Homebrew/brew where they are unused by Homebrew maintainers or
official taps/formulae.
2018-10-19 10:48:52 +01:00
EricFromCanada
20167e5f1b Adjust comments to tidy API docs output. 2018-10-18 21:42:43 -04:00
Markus Reiter
1f24c6600c Fix cleanup of incomplete downloads. 2018-10-14 00:15:16 +02:00
Viktor Szakats
041cd039f7 download_strategy: Miscalculated redirect when Location: is protocol-relative 2018-10-07 11:16:33 +00:00
Markus Reiter
e9b9ea49a1 Update to RuboCop 0.59.1. 2018-09-17 03:45:59 +02:00
Mike McQuaid
955214abc0
Use ActiveSupport Object#blank? and #present? 2018-09-14 17:02:19 +01:00
Markus Reiter
17c3a66265 Change regex to match filename if header also contains filename*. 2018-09-05 02:28:35 +02:00
Markus Reiter
2ca3439ada Fix downloads directory not being created. 2018-09-05 00:38:19 +02:00
Mike McQuaid
bcb1ec5499
Improve Homebrew/brew line length.
Use 124 max line length everywhere. Also, reduce tap max line length to
189 as Homebrew/homebrew-core has that as a maximum now. In future
Homebrew/homebrew-core will also be reduced to 124 maximum line length.
2018-09-02 16:15:09 +01:00
Markus Reiter
e377bdb6fe Fix CurlApacheMirrorDownloadStrategy URL resolution. 2018-09-02 03:30:37 +02:00
Markus Reiter
b54682f709 Avoid network call in #initialize. 2018-09-01 16:20:10 +02:00
Markus Reiter
b63ac557bc Update symlink even if cached_location already exists. 2018-08-31 16:51:23 +02:00
Markus Reiter
9edc355052 Don’t glob for .incomplete downloads. 2018-08-31 16:51:23 +02:00
Markus Reiter
3988458919 Use real basename for output. 2018-08-31 16:51:23 +02:00
Markus Reiter
fbcaa8c85a Resolve URL to get real file extension. 2018-08-31 16:51:23 +02:00
Kevin Abel
584cced003
Remove the chdir call that was already moved to the ancestor
528b4b367ed2a4026c321e2f2e503ace4548b9d2 moved the chdir definition to
the parent class and call it in the parent's stage. chdir was getting
called twice for archives with two nested directories.
2018-08-17 23:13:23 -05:00