Replace repository with new sourcehut repo Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Merge branch 'replace-failure-with-anyhow' Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Replace failure with anyhow in complete codebase This patch was scripted with sed -i 's/use failure::Error/use anyhow::Error/' $(rg "use failure::Error" -l) sed -i 's/use failure::Fallible as /use anyhow::/' $(rg "use failure::Fallible" -l) sed -i 's/failure/anyhow/' $(rg "failure *=" -l) sed -i 's/format_err!/anyhow!/' $(rg "format_err!" -l) sed -i 's/use failure::ResultExt/use anyhow::Context/' $(rg "use failure::ResultExt" -l) sed -i 's/err_msg/anyhow!/' $(rg "use failure::err_msg" -l) sed -i 's/^anyhow\ *=.*$/anyhow = "1"/' $(rg "anyhow * =" -l) sed -i 's/^anyhow_derive.*//' $(rg "anyhow_derive" -l) sed -i 's/extern crate failure/extern crate anyhow/' $(rg "extern crate failure" -l) sed -i 's/.*extern crate anyhow_derive.*//' $(rg "anyhow_derive" -l) Some manual changes were added as well, so this patch was not completely scripted, but mostly. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Update copyright years to 2015-2020 Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Merge branch 'report-ids-ignore-broken-pipe' into master Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Remove error conversion which is not necessary anymore. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Merge branch 'noexit' into master This merge includes the first batch of "no-exit()-call" patches. With this patchset, we do not exit() anywhere in the core binaries anymore, but propagate errors up to the main() function, where they are returned. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Remove calls to exit() and replace them with error propagation up to main() Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Merge Leons patches for single-binary and CLI completion preparation This merge pulls in the changes that Leon developed over the course of the last months which change the binaries to actually be libraries with a _very_ minimal binary surface. This enables us to actually generate commandline completion scripts with clap without doing any fancy file-include magic in a build.rs script. From the original request-pull message (Mon, 24 Jun 2019 21:48:51 +0200): > This patch is yet another attempt at bringing CLI completion to this > workspace project. The details are explained in the commit message. > > Advantages of this approach include: > - Use of standard dependency management features (`cargo install` > compatible) > - Exposing further "binary" business logic to other Rust crates as a > library > - (Possibly) hard linking the "binary" into the main imag binary, so > only one binary needs to be shipped. This should improve startup time, > and the Runtime instance could even be reused. I'd favor this > approach, while making it all configurable via features and still > searching the $PATH to allow bash-scripts etc. to provide imag > subcommands. > > However, this *could* increase binary size, I didn't perform any > measures (at least when not only using in the build script but in the > main binary as well). Anyhow, with LTO enabled this shouldn't matter if > the dependencies aren't used. Some patches were added by me before the merge, because Leon did not check whether the tests still work (just minimal adjustments, see the log). Also, one change was made to the final patchset send by Leon, which was a fixup of the Copyright date in bin/core/imag/build.rs. This change does not appear in the commit logs because it was just bumping the year from 2018 to 2019 in the Copyright header. This was acked by Leon in a private conversation. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
imag-ref: implement ImagApplication Signed-off-by: Leon Schuermann <leon@is.currently.online>
Pull changes from https://github.com/flip1995/imag clippy_fix This pulls in the clippy fixes from Phil. From the request-pull: -----8<----- I finally got to fixing all of the Clippy warnings in the imag codebase. `cargo test` passes, `cargo clippy` doesn't produce any warnings or errors. Some important notes: - I didn't pay attention to the line length of the changes, so it may have happened that some lines are now longer than 100 chars - Except two commits the commit messages are formatted as follows: * The first tag shows if the changes in the commit were automatically applied by `cargo fix --clippy -Zunstable-options`. Commits that were automatically applied may require closer review, since I didn't check those by hand and the Clippy fix feature is still unstable. * The other tags specify the subcrate that is affected by the commit. I created one commit for each subcrate, even when only one file (most of the time the `main.rs` file) was changed. - I created one commit, where I replace usages of `r#try!` with the `?` operator, since `try!` is now officially deprecated. - I created one commit, where I just allow Clippy lints. Either because the fix would require much more work or knowledge of the codebase or because it was a FP. This was pretty much work, but it helped detecting a few bugs in Clippy, where I was already able to open 3 or 4 PRs. So win-win I guess. [...] we got a net LoC decrease. ----->8-----
[No-auto] bin/core/ref: Fix Clippy warnings Signed-off-by: flip1995 <hello@philkrones.com> Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
[Auto] bin/core/ref: Fix Clippy warnings Signed-off-by: flip1995 <hello@philkrones.com> Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Update all dependencies This patch updates all dependencies but not "nom". Done with `cargo upgrade --all` and manual editing. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Introduce proper error handling in IdPathProvider Prior to this change, the IdPathProvider implementation would be responsible for exiting the process on insufficient / wrong arguments. However, such error handling should be performed together with the business logic and not in CLI-parsing related code. This change introduces a clear separation: both parsing errors and insufficient id path arguments can now be return from inside the `get_ids`-method, and get passed up to the application logic to be handled. This change is reflected in all instances of IdPathProvider and their surrounding code. Signed-off-by: Leon Schuermann <leon.git@is.currently.online> Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Remove buildscripts When installing (a subcrate) from crates.io, it fails because it cannot find the buildscript. This is the quickfix, simply remove the buildscript itself and the setup of the buildscript in all Cargo.toml files. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Run 'cargo fix' for rust-2018 With this patch we move the codebase to Rust-2018. The diff was generated by executing cargo fix --all --all-features --edition on the codebase. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Merge branch 'imag-ref-list-dead-refs' into master
Fix: Do only check entries which are a ref We should not try to check entries that are not refs because this will always fail. And because we fail _hard_, the execution of the command fails on the first non-ref-entry and exits the program. Not good for a filter... :-) Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Implement list-dead subcommand This patch implements a helper in imag-ref to list all dead references either by store id or by path which is referenced. Suggested-by: Leon Schürmann <leon@is.currently.online> Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Add CLI interface for listing dead refs Signed-off-by: Matthias Beyer <mail@beyermatthias.de>