Age | Commit message (Collapse) | Author |
|
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
|
|
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
|
|
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
|
|
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
|
|
Because tokio 1.0 does not ship with the Stream trait, this patch also
introduces tokio_stream as new dependency.
For more information, look here:
https://docs.rs/tokio/1.0.3/tokio/stream/index.html
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
This patch re-implements hashing using streams and buffered readers instead of
reading a full file to RAM before hashing it.
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
|
|
|
|
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
|
|
Because we continuously get blocking filesystem operations when the
implementation of the verification is async, simply remove the asyncness here
now.
This does not decrease performance (yet), because the function is called
concurrently with other calls anyways.
It blocks the tokio worker thread tho, thus maximum parallelism might be =
number of cores. :-(
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
|
|
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
|
|
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
This patch adds a feature where a source entry in a package can be marked for
manual download.
This gives us the ability to mask downloads which are hidden behind cruel
JavaScript bullshit bloat where a `curl` cannot access the remote file.
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Apparently, this fixes the rendering bug we had with indicatif.
The issue was, that we called `indicatif::ProgressBar::set_message()`
before the bar was added to the `indicatif::MultiProgress` object.
This caused the bar to be rendered, and as soon we added it to the
MultiProgress object and re-called set_message(), it was rendered again.
This is of course a bug / inconveniance in indicatif.
Either way, the issue was solved by not calling `set_message()` in our
`ProgressBars` helper object, but only return a preconfigured bar
object.
Because not calling the set_message() function yields the whole bunch of
helper functions as unnecessary, these were removed and the interface
was boiled down to `pub fn ProgressBars::bar(&self) ->
indicatif::ProgressBar` which in turn results in a few modifications all
over the place.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
This patch fixes the verify_impl() to log the errors properly. Before
this patch, the first error was reported (which we did not mean to
implement this way, so it was a bug).
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
This patch changes the sources to be named.
This is required for nice interpolation when layering pkg.toml files.
Before this, we had to make sure that the `[[sources]]` array element
was on the right position.
For example, consider two files:
/pkg.toml
/package/pkg.toml
in the first:
[[sources]]
url = "some/thing"
in the second:
[[sources]
hash.type = "sha1"
hash.value = "asdf..."
When merged:
[[sources]
url = "some/thing"
hash.type = "sha1"
hash.value = "asdf..."
but because the _position_ was responsible for merging these elements,
adding a new source file _before_ the existing on in /pkg.toml would
yield the /package/pkg.toml incomplete when merged onto /pkg.toml, thus
resulting in an error.
With named source entries, this is less likely.
The source file name includes the source name as well, of course.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Diesel is an exception here, because the generated src/schema.rs file
does not automatically contain the necessary imports.
All imports were added where necessary.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
This was unused anyways, and I am not even sure what we implemented it
for.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
This patch also changes the implementation of the hash verification to
fail _late_ instead of early.
This means that all hashes are computed and compared and errors are
reported after that, not as soon as the first hash comparison fails.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
This patch implements multiple (unnamed) sources per package.
This means that a package can have an array of sources.
What was adapted to allow multiple sources per package:
* Downloads are made in parallel now
* The cache structure was changed to /<package>-<version>/<hash>.source
* The UI was changed to contain the full `Package` struct (as JSON
object) in a UI format string
Tests were adapted.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
This patch cleans the imports, removes the unused ones and moves
imports, wherever possible, to the outer scope.
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|
|
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
|