Commit Graph

1546 Commits

Author SHA1 Message Date
aawsome
9bdb7fe02c
chore(deps): Update dependencies (#1196)
closes #1195
2024-08-10 04:13:38 +02:00
Yonas Yanfa
402aa7c5d3
docs: Fix typo in find.rs (#1187) 2024-07-31 13:59:22 +02:00
Daniel Oliveira
cb8c3760b5
fix(tui): reset terminal no matter what (#1175)
Currently if you run `rustic snapshots -i` without a repository
configured `rustic` will leave the terminal in raw mode.

This is a simple fix to make sure the terminal is properly reset in all
situations.

close #1166

Co-authored-by: aawsome <37850842+aawsome@users.noreply.github.com>
2024-07-10 04:12:05 +00:00
Alexander Weiss
599e61a900 fix clippy lints 2024-07-10 05:50:56 +02:00
aawsome
fc8e3c5539
feat(interactive): Add better progress bars (#1152) 2024-05-14 01:13:44 +02:00
Alexander Weiss
cfd15ea52a feat: document opendal options connections and throttle 2024-05-07 16:44:45 +02:00
aawsome
7665b84f74
fix: Respect delete-protection when running forget with ids (#1149)
closes #1148
2024-05-07 10:16:50 +02:00
aawsome
7ff4d2f6ff
fix clippy lints (#1150) 2024-05-07 09:57:25 +02:00
aawsome
dcd240a50a
feat(interactive): Prompt before exiting (#1146) 2024-05-01 00:20:37 +02:00
aawsome
6bf5069d0c
add find command (#1136)
Adds the new command `find`.
This commands allows to search for glob pattern using `--glob`/`--iglob`
or given paths using `--path` in a list of snapshots.
It displays all finds and is able accumulate snapshots with identical
search result. This allows to use this command as a history search:
`rustic find --path /my/path` shows (only) all changes of that path.
2024-04-30 11:54:43 +02:00
aawsome
a6bd54c7cb
more interactive improvements (#1145)
restore:
- propose path from snapshot as target
- handle empty target

write snapshots:
- clarify that you can enter (y/n)
2024-04-29 21:44:33 +02:00
aawsome
bd726839d9
interactive improvements: reset screen on panic; key bindings (#1144)
If a panic happens, the interactive screen is now reset so the terminal
can show the panic output.
Moreover, "to-delete" was renamed to "to-forget" and the key bindings
were changed to f / Ctrl-f.
2024-04-29 18:21:34 +02:00
aawsome
23a634d06a
feat(interactive): Allow to delete snapshots (#1143) 2024-04-28 23:16:22 +02:00
aawsome
a34000f912
feat(interactive): Add possibility to change snapshot description (#1137)
closes #1134
2024-04-26 01:06:50 +02:00
aawsome
595268217d
feat(logging): use RFC3339 time format in logfile (#1133)
Times in logfiles are now printed in RFC3339 format

closes #1076
2024-04-23 22:08:38 +02:00
aawsome
58ed4b3655
feat!: Allow specifying many options in config profile without array (#1130)
Breaking change:
`password-command` and `warmup-command` now must be given as array if
the commands use args.
2024-04-22 15:03:39 +02:00
aawsome
a1b31632ed
Interactive snapshots groups (#1129)
The interactive snapshots view now also groups snapshots.
2024-04-22 12:15:29 +02:00
dependabot[bot]
8d331c6200
build(deps): bump rustls from 0.21.10 to 0.21.11 (#1127)
Bumps [rustls](https://github.com/rustls/rustls) from 0.21.10 to
0.21.11.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7b8d1dbc1e"><code>7b8d1db</code></a>
Prepare 0.21.11</li>
<li><a
href="ebcb4782f2"><code>ebcb478</code></a>
complete_io: bail out if progress is impossible</li>
<li><a
href="20f35dfb6d"><code>20f35df</code></a>
Regression test for <code>complete_io</code> infinite loop bug</li>
<li><a
href="2f2aae15a4"><code>2f2aae1</code></a>
Don't specially handle unauthenticated close_notify alerts</li>
<li><a
href="e163587b98"><code>e163587</code></a>
Don't deny warnings from nightly clippy</li>
<li><a
href="9f864874cf"><code>9f86487</code></a>
server::handy: fix new nightly clippy lint</li>
<li><a
href="7e0e8ab599"><code>7e0e8ab</code></a>
Correct assorted clippy warnings in test code</li>
<li><a
href="3587d98f4e"><code>3587d98</code></a>
Apply clippy suggestions from Rust 1.72</li>
<li><a
href="d082e837b3"><code>d082e83</code></a>
Address <code>clippy::redundant_static_lifetimes</code></li>
<li><a
href="5e7a06ca45"><code>5e7a06c</code></a>
Address <code>clippy::slow_vector_initialization</code></li>
<li>Additional commits viewable in <a
href="https://github.com/rustls/rustls/compare/v/0.21.10...v/0.21.11">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rustls&package-manager=cargo&previous-version=0.21.10&new-version=0.21.11)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/rustic-rs/rustic/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-19 21:06:45 +00:00
aawsome
d8d4a93161
feat(interactive): ls: remember parent position (#1126) 2024-04-19 17:12:48 +02:00
aawsome
9980a36b7d
fix(config)!: multiple paths in config profile as array (#1124)
-- BREAKING CHANG --

Using multiple paths for a sources in the config file caused many
problems as the syntax was unclear and problems existed in edge cases.

This PR changes the definition of sources in config profile files:
- a single path path can be specified as before, i.e. using `source =
"/my/path"`.
- multiple paths must now be given in an array:
```
source = ["/my/path1", "/my/path2"]
```

Note that 
```
source = "/my/path1 /my/path2"
```
is now interpreted a a single path using the dir-tree "my","path1 "
(with space), "my", "path2".

closes #1122
closes #1094
2024-04-18 16:03:39 +02:00
aawsome
de93aa390d
feat: Add interactive restore (#1123)
Currently only available from the interactive ls mode, see #1117
2024-04-18 13:41:50 +02:00
aawsome
b6e9c1b924
add progress message to interactive mode (#1120) 2024-04-17 00:24:02 +02:00
dependabot[bot]
5cbf088ba9
build(deps): bump h2 from 0.3.25 to 0.3.26 (#1113)
Bumps [h2](https://github.com/hyperium/h2) from 0.3.25 to 0.3.26.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hyperium/h2/releases">h2's
releases</a>.</em></p>
<blockquote>
<h2>v0.3.26</h2>
<h2>What's Changed</h2>
<ul>
<li>Limit number of CONTINUATION frames for misbehaving
connections.</li>
</ul>
<p>See <a
href="https://seanmonstar.com/blog/hyper-http2-continuation-flood/">https://seanmonstar.com/blog/hyper-http2-continuation-flood/</a>
for more info.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hyperium/h2/blob/v0.3.26/CHANGELOG.md">h2's
changelog</a>.</em></p>
<blockquote>
<h1>0.3.26 (April 3, 2024)</h1>
<ul>
<li>Limit number of CONTINUATION frames for misbehaving
connections.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="357127e279"><code>357127e</code></a>
v0.3.26</li>
<li><a
href="1a357aaefc"><code>1a357aa</code></a>
fix: limit number of CONTINUATION frames allowed</li>
<li><a
href="5b6c9e0da0"><code>5b6c9e0</code></a>
refactor: cleanup new unused warnings (<a
href="https://redirect.github.com/hyperium/h2/issues/757">#757</a>)</li>
<li>See full diff in <a
href="https://github.com/hyperium/h2/compare/v0.3.25...v0.3.26">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=h2&package-manager=cargo&previous-version=0.3.25&new-version=0.3.26)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/rustic-rs/rustic/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-16 22:06:33 +00:00
aawsome
6af6153337
feat: Add interactive ls mode (#1117)
Is currently only inlcuded in `rustic snapshots -i`.
2024-04-15 12:37:10 +02:00
aawsome
00c4f197d7
feat(commands): Add --check-index option (#1078)
Adds the `--check-index` option. This is an alternative to `rustic
repair index` in cases where the repository is read-only and cannot be
repaired.

Using this option, the index is checked against existing pack files and
missing information is read from the pack headers.
2024-04-15 10:53:05 +02:00
Alexander Weiss
ab64444a4c make interactive mode command-dependent option 2024-04-14 16:50:37 +02:00
aawsome
e8448f012c
feat: Add interactive snapshots mode (#1114)
Adds an interactive (TUI) mode. E.g. call `rustic snapshots -i`

Currently only a snapshot view is implemented with possibilities to
alter snapshots (label, tags, delete protection mark).

Use `--filter-*` to filter snapshots in the interactive mode
2024-04-13 23:25:29 +02:00
aawsome
88b21a85ad
feat(commands)!: show-config now outputs toml (#1095)
`show-config` now outputs toml.

see #1093

---------

Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-04-10 06:55:01 +02:00
aawsome
0f3cc39264
fix: show log filename if open/creation failed (#1111)
If opening or creating the logfile fails, rustic now shows the filename
to allow users debug the error.

closes #1105
2024-03-22 07:21:45 +00:00
Alexander Weiss
07f92d882e chore: Update deps and adapt to rustic_core changes 2024-03-22 00:38:05 +01:00
dependabot[bot]
6fffaad1cc
build(deps): bump mio from 0.8.10 to 0.8.11 (#1089)
Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.10 to 0.8.11.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md">mio's
changelog</a>.</em></p>
<blockquote>
<h1>0.8.11</h1>
<ul>
<li>Fix receiving IOCP events after deregistering a Windows named pipe
(<a
href="https://redirect.github.com/tokio-rs/mio/pull/1760">tokio-rs/mio#1760</a>,
backport pr:
<a
href="https://redirect.github.com/tokio-rs/mio/pull/1761">tokio-rs/mio#1761</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="0328bdef90"><code>0328bde</code></a>
Release v0.8.11</li>
<li><a
href="7084498512"><code>7084498</code></a>
Fix warnings</li>
<li><a
href="90d4fe00df"><code>90d4fe0</code></a>
named-pipes: fix receiving IOCP events after deregister</li>
<li><a
href="c710a307f8"><code>c710a30</code></a>
Add v0.8.x to the CI</li>
<li><a
href="c29e21c244"><code>c29e21c</code></a>
Release v0.8.10</li>
<li>See full diff in <a
href="https://github.com/tokio-rs/mio/compare/v0.8.10...v0.8.11">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mio&package-manager=cargo&previous-version=0.8.10&new-version=0.8.11)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/rustic-rs/rustic/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-04 23:44:53 +00:00
aawsome
aaedf27cbf
docs: Update configuration README (#1088) 2024-03-04 16:50:12 +01:00
simonsan
a642f134ed
test: refactor integration tests to assert_cmd and predicates, test all configs in config subdirectory (#1060)
The intention of this PR is to make it easier (more straight forward) to
write `rustic` integration tests by utilizing the `assert_cmd` and
`predicates` crates.

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-02-29 20:04:19 +00:00
aawsome
206efa3f90
feat: Allow setting extra repository options via env variables (#1081)
Reads the env variables `RUSTIC_REPO_OPT_*`, `RUSTIC_REPO_OPTCOLD_*`,
`RUSTIC_REPO_OPTHOT_*` to set repository options. Also reads `OPENDAL_*`
variables which may be used to explicitly set opendal options (as they
are in snake and not kebab case).

closes #1073
2024-02-28 20:31:00 +01:00
Tom Hale
a39a14d6c8
fix(doc): Correct b2.toml (#1072)
closes #1068 

- s/key_id/application_key_id/
- Remove generic opendal comment
- Add comment for password file

---------

Co-authored-by: Alexander Weiss <alex@weissfam.de>
2024-02-25 11:34:13 +01:00
aawsome
b0c7e860e7
fix: Fix possible overflow in progress bar ETA (#1079)
closes #1077
2024-02-23 08:05:30 +01:00
aawsome
2a85ea32f3
feat(commands): prune: Add more debug output (#1064) 2024-02-21 23:31:21 +01:00
simonsan
e704a6c42b
ci: break old ci jobs when new commits are pushed so we don't fill up the queue
If new code is pushed to a PR branch, then cancel in progress workflows for that PR. Ensures that we don't waste CI time, and returns results quicker.

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-02-18 00:10:17 +01:00
simonsan
d20eaaa4dd
feat(ux): Use human-panic to print better error messages in case rustic panics (#1065)
human-panic is in so far valuable, that it can help us to better
diagnose panics and errors in rustic as it prints better messages and
even writes a log file with the stacktrace, that users can attach to
their issues.

human-panic only displays a human-friendly panic message in release
mode.
2024-02-16 08:47:27 +00:00
aawsome
85fcf8faab
fix(commands): Ask for missing password in copy when initializing (#1063)
`rustic copy --init` now supports asking for the destination password
when initializing the destination repository
2024-02-14 00:58:19 +00:00
aawsome
a477e741bf
fix(commands): Ask for password in backup and copy command if it is missing (#1061)
A user discovered that for some commands they are not being asked for a
password, although they should. This implements a fix for the backup and
copy command so they consistently call the same functionality that is
being used for the other commands. Hence, asking for the password, if
it's missing.
2024-02-12 23:36:17 +00:00
Alexander Weiss
6e737879c5 set development version 2024-02-06 20:30:50 +01:00
Alexander Weiss
127d54ecf4 fix(config): rename service examples 2024-02-06 19:55:54 +01:00
simonsan
dc436a5d4f
fix(config): add comments for owncloud and nextcloud dependent settings
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-02-06 15:40:34 +01:00
Falco Hirschenberger
a7860870f2
feat(config): add example config for owncloud and nextcloud (#1052) 2024-02-06 15:19:53 +01:00
simonsan
ef4fd52a7c
feat(config): add s3_idrive config and move configs to a services subdirectory (#1048)
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: kapitainsky <dariuszb@me.com>
2024-02-05 08:15:40 +00:00
simonsan
3f6afaf130
tests: replace missing crates folder with src
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-02-05 00:35:39 +01:00
simonsan
e4cd0d7bb9
chore: move rustic_testing into rustic_core
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-02-04 23:00:11 +01:00
simonsan
714629950f
chore: fix cargo-binstall metadata
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-02-04 02:41:06 +01:00
github-actions[bot]
f06574be01
release: rustic-rs v0.7.0 (#1035)
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: Alexander Weiss <alex@weissfam.de>
2024-02-03 21:22:28 +00:00