Commit Graph

484 Commits

Author SHA1 Message Date
aawsome
bb107be102
feat(commands): Add mount command (#973)
This PR adds the `mount` command to rustic to access snapshot contents
as a read-only filesystem when the feature-flag `mount` is chosen.

As for the `webdav` command, there are following options:
- Access to a concrete snapshot/path, e.g. `rustic mount /mnt
37a63e5b:/my/path`.
- Access to all snapshots (maybe restricted by filters) by using
templates to define a virtual directory structure where snapshots are
located. Example: `rustic mount /mnt --path-template
"[{hostname}]/[{label}]/{time}" --time-template "%Y-%m-%d_%H-%M-%S"`
(these are also defined as default). Note that for all dirs containing
only snapshots, also a `latest` entry is generated. `latest` and
identical subsequent snapshots are symlinks when using `mount`.

This PR uses fuse_mt which is not optimal as it introduces some overhead
(e.g. needs to save whole Paths in-memory).

Note: Requires https://github.com/rustic-rs/rustic_core/pull/331 to
properly show all data of files (without it builds and runs, but files
are truncated and return error when reading).

Note: Building with the `mount` feature flag requires special
dependencies and is only possible on supported platforms, see
https://github.com/cberner/fuser

closes #971

---------

Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-11-10 20:49:44 +00:00
simonsan
d4420c3dce
chore(deps): update core and testing crates (#1340) 2024-10-25 17:12:09 +02:00
rustic-release-plz[bot]
fb7dddaf24
chore: release v0.9.4 (#1322)
## 🤖 New release
* `rustic-rs`: 0.9.3 -> 0.9.4 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.9.4](https://github.com/rustic-rs/rustic/compare/v0.9.3...v0.9.4)
- 2024-10-24

### Added

- *(commands)* Add tar output to dump command
([#1328](https://github.com/rustic-rs/rustic/pull/1328))

### Fixed

- clippy lints for new Rust version
([#1329](https://github.com/rustic-rs/rustic/pull/1329))
- *(deps)* downgrade self-update to fix problems finding right target
([#1323](https://github.com/rustic-rs/rustic/pull/1323))

### Other

- *(deps)* remove once_cell and replace with std::sync::LazyLock,
increase MSRV to 1.80.0
([#1337](https://github.com/rustic-rs/rustic/pull/1337))
- *(deps)* update tokio, ratatui, and tui-textarea
([#1336](https://github.com/rustic-rs/rustic/pull/1336))
- *(deps)* update rustic_core and rustic_backend
([#1334](https://github.com/rustic-rs/rustic/pull/1334))
- *(deps)* update abscissa framework
([#1330](https://github.com/rustic-rs/rustic/pull/1330))
- introduce a new feature 'release' that includes the 'self-update'
feature ([#1307](https://github.com/rustic-rs/rustic/pull/1307))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
2024-10-24 17:46:20 +00:00
simonsan
2afb5b2132
chore(deps): remove once_cell and replace with std::sync::LazyLock, increase MSRV to 1.80.0 (#1337) 2024-10-24 19:29:49 +02:00
aawsome
dea0221b38
feat(commands): Add tar output to dump command (#1328)
The `dump` command will now produce a tar when called with a directory.

---------

Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-24 19:05:00 +02:00
simonsan
a6a135a649
chore(deps): update tokio, ratatui, and tui-textarea (#1336)
chore(deps): update dependencies: tokio, ratatui, and tui-textarea
fix(clippy): use of deprecated method `ratatui::widgets::Table::<'a>::highlight_style`: use `Table::row_highlight_style` instead
2024-10-24 19:01:46 +02:00
simonsan
11885c190a
chore(deps): update rustic_core and rustic_backend (#1334)
Update rustic_core and rustic_backend to incorporate fixes. See their
changelogs for more information.

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-24 18:43:18 +02:00
simonsan
4ba226a7f3
chore(deps): update abscissa framework (#1330) 2024-10-24 18:21:05 +02:00
simonsan
24a7ec53fb
fix(deps): downgrade self-update to fix problems finding right target (#1323)
Fixes #1291

Related: https://github.com/jaemk/self_update/issues/136

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-16 11:12:59 +00:00
rustic-release-plz[bot]
9c1239e0c7
chore: release v0.9.3 (#1312)
## 🤖 New release
* `rustic-rs`: 0.9.2 -> 0.9.3 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.9.3](https://github.com/rustic-rs/rustic/compare/v0.9.2...v0.9.3)
- 2024-10-10

### Fixed

- *(deps)* update rustic_core to version 0.5.3
([#1314](https://github.com/rustic-rs/rustic/pull/1314))

### Other

- add status badge for docker image build and shorten workflow name
([#1311](https://github.com/rustic-rs/rustic/pull/1311))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
2024-10-10 04:29:04 +02:00
simonsan
facfb2d20e
fix(deps): update rustic_core to version 0.5.3 (#1314)
This contains an immediate fix for a newly introduced bug in
`rustic_core v0.5.2` that involved how the `TreeStreamerOnce` handled
errors when a channel was full.

Fixes v0.9.2 breaks prune operations #1313

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-10 04:11:20 +02:00
rustic-release-plz[bot]
fe07c41f1e
chore: release v0.9.2 (#1294)
## 🤖 New release
* `rustic-rs`: 0.9.1 -> 0.9.2 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.9.2](https://github.com/rustic-rs/rustic/compare/v0.9.1...v0.9.2)
- 2024-10-09

### Added

- *(config)* Add hooks
([#1218](https://github.com/rustic-rs/rustic/pull/1218))

### Other

- *(deps)* update rustic_core
([#1309](https://github.com/rustic-rs/rustic/pull/1309))
- build and publish docker image on release
([#1297](https://github.com/rustic-rs/rustic/pull/1297))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
2024-10-09 17:01:52 +00:00
simonsan
64e1ebb5ba
chore(deps): update rustic_core (#1309)
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-09 18:43:47 +02:00
aawsome
cb3903b9dc
feat(config): Add hooks (#1218)
This PR adds `run-before`, `run-after`, `run-failure` and `run-finally`
hooks for:
- all commands in the `[global.hooks]` config profile section
- commands accessing the repository in the `[repository.hooks]` config
profile section
- the `backup` command specifically in the `[backup.hooks]` config
profile section
- specific backup sources in the `[backup.snapshots.hooks]` section

Note: This PR includes only calling the given commands. If there is the
wish for supplying information to the commands (env variables or
parameter substitution), this should be covered by a separate feature
request/PR.

closes #902

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-05 01:58:55 +00:00
rustic-release-plz[bot]
62d78ebc8e
chore: release v0.9.1 (#1283)
## 🤖 New release
* `rustic-rs`: 0.9.0 -> 0.9.1 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.9.1](https://github.com/rustic-rs/rustic/compare/v0.9.0...v0.9.1)
- 2024-10-03

### Added

- *(config)* add more filters
([#1263](https://github.com/rustic-rs/rustic/pull/1263))
- *(check)* Allow to only check trees+packs for given snapshots
([#1230](https://github.com/rustic-rs/rustic/pull/1230))
- *(commands)* add a `docs` command to easily access the user, dev and
config documentation
([#1276](https://github.com/rustic-rs/rustic/pull/1276))

### Fixed

- *(docs/cli)* improve the descriptions of the CLI commands
([#1277](https://github.com/rustic-rs/rustic/pull/1277))
- *(deps)* update rustic_core and other dependencies and fix merge
precedence ([#1282](https://github.com/rustic-rs/rustic/pull/1282))
- *(docs)* update configuration documentation to align with recent
changes ([#1280](https://github.com/rustic-rs/rustic/pull/1280))

### Other

- *(deps)* upgrade dependencies
([#1289](https://github.com/rustic-rs/rustic/pull/1289))
- add triage label to new issues only if no label has been set when
creating it ([#1287](https://github.com/rustic-rs/rustic/pull/1287))
- *(interactive)* use update methods for refreshing snapshots
([#1285](https://github.com/rustic-rs/rustic/pull/1285))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
2024-10-03 17:42:19 +00:00
simonsan
b384852679
chore(deps): upgrade dependencies (#1289)
- rustic_core to 0.5.1
- rustic_backend to 0.4.1
- open to 5.3.0

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-03 19:23:40 +02:00
aawsome
cc4f016dab
feat(config): add more filters (#1263)
Adds the following filter options:
- `filter-paths-exactly` - filters exactly the given pathlists
(supersets don't match)
- `filter-tags-exactly` - filters exactly the given taglists (supersets
don't match)
- `filter-before` - filters by time (date or date+time can be given)
- `filter-after` - filters by time (date or date+time can be given)
- `filter-size` - filters by size of snapshot'ed data (upper and lower
limit may be given)
- `filter-size-add` - filters by size added to the repository (upper and
lower limit may be given)

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-02 22:57:21 +00:00
simonsan
ec6165a25e
fix(deps): update rustic_core and other dependencies and fix merge precedence (#1282)
Due to changes in the way how merging of values were applied to
configuration values in `BackendOptions` this should is considered a
fix. Now values from the configuration file don't overwrite values from
environment variables, any more. As it was intended and stated in the
documentation.

Please make sure, your workflow is still working as intended, especially
that the configuration values and environment variables are applied as
you wanted it and as we documented it in the Configuration
documentation.

Precedence also applies when inheriting options from other profiles
using `use-profiles` or when using multiple profiles, e.g. `rustic -P
one -P two`. If the same repository option is defined in `one` and `two`
the value of `one` is taken. Before the fix, the value of `two` was
taken. But the fix only applies to the repository options. For other
options, `one` always had precedence.

Fixes #1226

---------

Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: Alexander Weiss <alex@weissfam.de>
2024-10-02 13:43:11 +00:00
simonsan
fbf4c2edfa
feat(commands): add a docs command to easily access the user, dev and config documentation (#1276)
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-10-02 07:15:34 +00:00
rustic-release-plz[bot]
ee3f099d4b
chore: release v0.9.0 (#1256)
## 🤖 New release
* `rustic-rs`: 0.8.1 -> 0.9.0 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.9.0](https://github.com/rustic-rs/rustic/compare/v0.8.1...v0.9.0)
- 2024-09-29

### Added

- *(commands)* Add list indexpacks and list indexcontent commands
([#1254](https://github.com/rustic-rs/rustic/pull/1254))
- *(commands)* Add option `--only-identical` for `diff` to allow for
bitrot check ([#1250](https://github.com/rustic-rs/rustic/pull/1250))
- *(commands)* ls: Add option --json
([#1251](https://github.com/rustic-rs/rustic/pull/1251))
- *(commands)* [**breaking**] copy: Use config profile as target
([#1131](https://github.com/rustic-rs/rustic/pull/1131))
- *(commands)* backup: Add option --long
([#1159](https://github.com/rustic-rs/rustic/pull/1159))

### Fixed

- *(deps)* update rust crate libc to v0.2.159
([#1257](https://github.com/rustic-rs/rustic/pull/1257))
- *(config)* [**breaking**] use multiple options only as array in config
profile ([#1240](https://github.com/rustic-rs/rustic/pull/1240))
- *(interactive)* Allow snapshots to be modified and marked to forget
([#1253](https://github.com/rustic-rs/rustic/pull/1253))
- make ls and find show the year of mtime date
([#1249](https://github.com/rustic-rs/rustic/pull/1249))
- ls: Remove printing trailing space
([#1247](https://github.com/rustic-rs/rustic/pull/1247))
- webdav/forget: correctly use application config
([#1241](https://github.com/rustic-rs/rustic/pull/1241))

### Other

- update installation instructions in readme to use `--locked` flag for
install from crates.io
- *(deps)* lock file maintenance
([#1269](https://github.com/rustic-rs/rustic/pull/1269))
- delete unused xtask pattern directory
- *(deps)* update rust crate rstest to 0.23
([#1267](https://github.com/rustic-rs/rustic/pull/1267))
- *(deps)* update rust crate tempfile to v3.13.0
([#1266](https://github.com/rustic-rs/rustic/pull/1266))
- *(deps)* update marcoieni/release-plz-action digest to 8b0f89a
([#1265](https://github.com/rustic-rs/rustic/pull/1265))
- *(deps)* update embarkstudios/cargo-deny-action action to v2
([#1259](https://github.com/rustic-rs/rustic/pull/1259))
- *(deps)* update rustsec/audit-check action to v2
([#1260](https://github.com/rustic-rs/rustic/pull/1260))
- *(deps)* update softprops/action-gh-release action to v2
([#1258](https://github.com/rustic-rs/rustic/pull/1258))
- *(deps)* update embarkstudios/cargo-deny-action digest to 3f4a782
([#1228](https://github.com/rustic-rs/rustic/pull/1228))
- don't let release-plz create GH releases
- exclude the CHANGELOG from dprint formatting
- remove `-dev` description from version for release-plz to work
- remove release-pr workflow and replace with release-plz
- *(cd)* try fixing nightly release pipeline
- *(deps)* Update to new releases
([#1255](https://github.com/rustic-rs/rustic/pull/1255))
- Reduce memory usage of restore
([#1069](https://github.com/rustic-rs/rustic/pull/1069))
- Update to newest rustic_core
([#1248](https://github.com/rustic-rs/rustic/pull/1248))
- update RepositoryErrorKind rustdoc following rustic_core change
([#1237](https://github.com/rustic-rs/rustic/pull/1237))
- set development version
- add flag for building with self-update feature for nightly and CD
- Remove self-update from default crate features
([#1139](https://github.com/rustic-rs/rustic/pull/1139))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

---------

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
Co-authored-by: Alexander Weiss <alex@weissfam.de>
2024-09-29 22:30:46 +02:00
renovate[bot]
227a8e1062
chore(deps): lock file maintenance (#1269)
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency
versions.

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on the first day of the
month" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rustic-rs/rustic).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiQS1kZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 14:33:17 +00:00
renovate[bot]
b4535354b4
chore(deps): update rust crate rstest to 0.23 (#1267)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [rstest](https://redirect.github.com/la10736/rstest) |
dev-dependencies | minor | `0.22` -> `0.23` |

---

### Release Notes

<details>
<summary>la10736/rstest (rstest)</summary>

###
[`v0.23.0`](https://redirect.github.com/la10736/rstest/blob/HEAD/CHANGELOG.md#0230-2024929)

[Compare
Source](https://redirect.github.com/la10736/rstest/compare/v0.22.0...v0.23.0)

##### Add

- You can now use environment variables in `#[files]` with an optional
default value (see
[#&#8203;277](https://redirect.github.com/la10736/rstest/pull/277)).
- You can now set a base_dir for `#[files]` with the `$[base_dir =
"..."]` attribute (see
[#&#8203;277](https://redirect.github.com/la10736/rstest/pull/277)).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rustic-rs/rustic).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiQS1kZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 13:40:35 +00:00
renovate[bot]
968e3934d2
chore(deps): update rust crate tempfile to v3.13.0 (#1266)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [tempfile](https://stebalien.com/projects/tempfile-rs/)
([source](https://redirect.github.com/Stebalien/tempfile)) |
dev-dependencies | minor | `3.12.0` -> `3.13.0` |

---

### Release Notes

<details>
<summary>Stebalien/tempfile (tempfile)</summary>

###
[`v3.13.0`](https://redirect.github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3130)

[Compare
Source](https://redirect.github.com/Stebalien/tempfile/compare/v3.12.0...v3.13.0)

- Add `with_suffix` constructors for easily creating new temporary files
with a specific suffix (e.g., a specific file extension). Thanks to
[@&#8203;Borgerr](https://redirect.github.com/Borgerr).
-   Update dependencies (fastrand & rustix).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rustic-rs/rustic).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiQS1kZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-29 13:05:11 +00:00
renovate[bot]
692349fc1b
fix(deps): update rust crate libc to v0.2.159 (#1257)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [libc](https://redirect.github.com/rust-lang/libc) | dependencies |
patch | `0.2.158` -> `0.2.159` |

---

### Release Notes

<details>
<summary>rust-lang/libc (libc)</summary>

###
[`v0.2.159`](https://redirect.github.com/rust-lang/libc/releases/tag/0.2.159)

[Compare
Source](https://redirect.github.com/rust-lang/libc/compare/0.2.158...0.2.159)

##### Added

- Android: add more `AT_*` constants in
[#&#8203;3779](https://redirect.github.com/rust-lang/libc/pull/3779)
- Apple: add missing `NOTE_*` constants in
[#&#8203;3883](https://redirect.github.com/rust-lang/libc/pull/3883)
- Hermit: add missing error numbers in
[#&#8203;3858](https://redirect.github.com/rust-lang/libc/pull/3858)
- Hurd: add `__timeval` for 64-bit support in
[#&#8203;3786](https://redirect.github.com/rust-lang/libc/pull/3786)
- Linux: add `epoll_pwait2` in
[#&#8203;3868](https://redirect.github.com/rust-lang/libc/pull/3868)
- Linux: add `mq_notify` in
[#&#8203;3849](https://redirect.github.com/rust-lang/libc/pull/3849)
- Linux: add missing `NFT_CT_*` constants in
[#&#8203;3844](https://redirect.github.com/rust-lang/libc/pull/3844)
- Linux: add the `fchmodat2` syscall in
[#&#8203;3588](https://redirect.github.com/rust-lang/libc/pull/3588)
- Linux: add the `mseal` syscall in
[#&#8203;3798](https://redirect.github.com/rust-lang/libc/pull/3798)
- OpenBSD: add `sendmmsg` and `recvmmsg` in
[#&#8203;3831](https://redirect.github.com/rust-lang/libc/pull/3831)
- Unix: add `IN6ADDR_ANY_INIT` and `IN6ADDR_LOOPBACK_INIT` in
[#&#8203;3693](https://redirect.github.com/rust-lang/libc/pull/3693)
- VxWorks: add `S_ISVTX` in
[#&#8203;3768](https://redirect.github.com/rust-lang/libc/pull/3768)
- VxWorks: add `vxCpuLib` and `taskLib` functions
[#&#8203;3861](https://redirect.github.com/rust-lang/libc/pull/3861)
- WASIp2: add definitions for `std::net` support in
[#&#8203;3892](https://redirect.github.com/rust-lang/libc/pull/3892)

##### Fixed

- Correctly handle version checks when `clippy-driver` is used
[#&#8203;3893](https://redirect.github.com/rust-lang/libc/pull/3893)

##### Changed

- EspIdf: change signal constants to c_int in
[#&#8203;3895](https://redirect.github.com/rust-lang/libc/pull/3895)
- HorizonOS: update network definitions in
[#&#8203;3863](https://redirect.github.com/rust-lang/libc/pull/3863)
- Linux: combine `ioctl` APIs in
[#&#8203;3722](https://redirect.github.com/rust-lang/libc/pull/3722)
- WASI: enable CI testing in
[#&#8203;3869](https://redirect.github.com/rust-lang/libc/pull/3869)
- WASIp2: enable CI testing in
[#&#8203;3870](https://redirect.github.com/rust-lang/libc/pull/3870)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rustic-rs/rustic).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiQS1kZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-25 12:48:53 +00:00
simonsan
20ca9fc902
chore: remove -dev description from version for release-plz to work
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-09-24 12:58:00 +02:00
aawsome
baeb27adfa
chore(deps): Update to new releases (#1255) 2024-09-24 10:32:58 +02:00
aawsome
5ec9652511
feat(commands): Add list indexpacks and list indexcontent commands (#1254)
This allows better analysis of reported bugs related to the index.
2024-09-24 00:36:45 +02:00
aawsome
4c4e820400
chore: Update to newest rustic_core (#1248)
Signed-off-by: simonsan <14062932+simonsan@users.noreply.github.com>
Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-09-23 21:34:51 +02:00
aawsome
86fa8551f4
fix(config)!: use multiple options only as array in config profile (#1240)
Consistently uses singular and plural names for options in config and
CLI

BREAKING CHANGE: This requires to adapt CLI calls and config keys.

Affected options:
- `glob` -> `globs` in config profile
- `iglob` -> `iglobs` in config profile
- `glob`-file -> `glob-files` in config profile
- `iglob-file` -> `iglob-files` in config profile
- `custom-ignore-file` -> `custom-ignore-files` in config profile
- `tag`-> `tags` in config profile
- `keep-tags` -> now only array
- `keep-ids` -> now only array
- `use-profile`-> `use-profiles` in config profile
- `backup.sources` -> `backup.snapshots` in config profile
- `filter-host` -> `filter-hosts` in config profile
- `filter-label` -> `filter-labels` in config profile

---------

Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
2024-09-23 15:04:45 +00:00
Alexander Weiss
77ca7ff72f set development version 2024-09-10 22:39:16 +02:00
aawsome
152c256bcf
prepare release 0.8.1 (#1231)
Co-authored-by: github-actions <github-actions@github.com>
2024-09-08 21:28:13 +02:00
aawsome
fc6f7ac847
chore: dependency updates (#1227) 2024-09-06 21:29:01 +02:00
nardoor
590b624ae3
feat: Add autocompletion hints (#1225)
## Feature

**Add auto completion hints**

This helps some shells to propose better completions.
For instance on `zsh`, no completion were proposed when doing `rustic
backup <...>[TAB]`

## Hints added
- `rustic backup <...>[TAB]`
- `rustic backup --as-path [TAB] <...>`
- `rustic backup --stdin-filename [TAB] <...>` This one is for comfort,
as the compl might not help (or might), but my opinion is that it's
better than nothing.
- `rustic diff <snapshot_id> <...>[TAB]`
- `rustic find --path <...>[TAB]`
- rustic --log-file <...>[TAB]`
2024-09-06 06:04:57 +00:00
dependabot[bot]
7e3b52049d
build(deps): bump quinn-proto from 0.11.6 to 0.11.8 (#1223)
Bumps [quinn-proto](https://github.com/quinn-rs/quinn) from 0.11.6 to
0.11.8.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7c09b02073"><code>7c09b02</code></a>
proto: bump version to 0.11.8 for release (<a
href="https://redirect.github.com/quinn-rs/quinn/issues/1981">#1981</a>)</li>
<li><a
href="59bccd2e7e"><code>59bccd2</code></a>
Version bump <code>quinn</code> to enforce patched
<code>quinn-proto</code></li>
<li><a
href="a8ec510fd1"><code>a8ec510</code></a>
proto: avoid panicking on rustls server config errors</li>
<li><a
href="c26e8cd2f7"><code>c26e8cd</code></a>
Bump versions</li>
<li><a
href="e01609ccd8"><code>e01609c</code></a>
Merge commit from fork</li>
<li><a
href="c292a3c6a6"><code>c292a3c</code></a>
Fix and test validation of IDCID length</li>
<li><a
href="bb02a12a84"><code>bb02a12</code></a>
fix(.github/android): use API level 26</li>
<li><a
href="5e5cc93645"><code>5e5cc93</code></a>
fix(.github/android): pass matrix.target and increase api to v26</li>
<li><a
href="cef42cccef"><code>cef42cc</code></a>
fix(udp): typo in sendmsg error log</li>
<li><a
href="edf16a6f10"><code>edf16a6</code></a>
ci(rust.yml): add workflow testing feature permutations</li>
<li>Additional commits viewable in <a
href="https://github.com/quinn-rs/quinn/compare/quinn-proto-0.11.6...quinn-proto-0.11.8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=quinn-proto&package-manager=cargo&previous-version=0.11.6&new-version=0.11.8)](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-09-04 08:00:18 +00:00
Alexander Weiss
f72285d81d set development version 2024-08-23 13:10:46 +02:00
aawsome
5423186657
chore: update rustic_core and rustic_backend (#1201) 2024-08-20 19:59:10 +00:00
aawsome
9bdb7fe02c
chore(deps): Update dependencies (#1196)
closes #1195
2024-08-10 04:13:38 +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
cfd15ea52a feat: document opendal options connections and throttle 2024-05-07 16:44:45 +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
23a634d06a
feat(interactive): Allow to delete snapshots (#1143) 2024-04-28 23:16:22 +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
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
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
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
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