devobs 0.1.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {devobs-0.1.0 → devobs-0.2.1}/.devcontainer/devcontainer.json +2 -2
- {devobs-0.1.0 → devobs-0.2.1}/.devcontainer/onCreateCommand.sh +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/.devcontainer/postAttachCommand.sh +1 -1
- {devobs-0.1.0 → devobs-0.2.1}/.github/workflows/ci.yaml +5 -9
- devobs-0.2.1/.github/workflows/prepare-release.yaml +51 -0
- {devobs-0.1.0 → devobs-0.2.1}/.github/workflows/release.yaml +15 -20
- {devobs-0.1.0 → devobs-0.2.1}/.pre-commit-config.yaml +14 -1
- devobs-0.2.1/.pre-commit-hooks.yaml +22 -0
- {devobs-0.1.0 → devobs-0.2.1}/Cargo.lock +63 -96
- {devobs-0.1.0 → devobs-0.2.1}/Cargo.toml +7 -6
- {devobs-0.1.0 → devobs-0.2.1}/Makefile +2 -2
- {devobs-0.1.0 → devobs-0.2.1}/PKG-INFO +4 -3
- devobs-0.2.1/README.md +7 -0
- devobs-0.2.1/src/commands/assert_diff.rs +158 -0
- {devobs-0.1.0 → devobs-0.2.1}/src/commands/check_file_pair.rs +2 -1
- {devobs-0.1.0 → devobs-0.2.1}/src/commands.rs +1 -0
- {devobs-0.1.0 → devobs-0.2.1}/src/main.rs +5 -3
- {devobs-0.1.0 → devobs-0.2.1}/src/utils/fs.rs +19 -4
- {devobs-0.1.0 → devobs-0.2.1}/tests/commands/mod.rs +1 -0
- devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__changes_create-2.snap +5 -0
- devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__changes_create.snap +7 -0
- devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__changes_delete-2.snap +5 -0
- devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__changes_delete.snap +7 -0
- devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__changes_modify-2.snap +5 -0
- devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__changes_modify.snap +7 -0
- devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__empty_directory.snap +9 -0
- devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__no_changes.snap +9 -0
- devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__no_command_to_run.snap +5 -0
- devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__nonexistent_directory.snap +5 -0
- devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__on_command_error_ignore.snap +9 -0
- devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__on_command_error_propagate.snap +7 -0
- devobs-0.2.1/tests/commands/test_assert_diff.rs +334 -0
- {devobs-0.1.0 → devobs-0.2.1}/tests/commands/test_check_file_pair.rs +43 -38
- {devobs-0.1.0 → devobs-0.2.1}/tests/helpers.rs +19 -8
- devobs-0.1.0/.pre-commit-hooks.yaml +0 -7
- devobs-0.1.0/README.md +0 -7
- {devobs-0.1.0 → devobs-0.2.1}/.config/nextest.toml +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/.editorconfig +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/.gitattributes +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/.github/dependabot.yaml +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/.gitignore +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/.rustfmt.toml +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/.vscode/extensions.json +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/.vscode/launch.json +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/.vscode/settings.json +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/LICENSE +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/pyproject.toml +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/rust-toolchain.toml +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/src/utils.rs +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/tests/commands/snapshots/integration_test__commands__test_check_file_pair__backward_matching.snap +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/tests/commands/snapshots/integration_test__commands__test_check_file_pair__create_if_not_exists.snap +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/tests/commands/snapshots/integration_test__commands__test_check_file_pair__create_if_not_exists_dry_run.snap +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/tests/commands/snapshots/integration_test__commands__test_check_file_pair__empty_directory_no_error_no_output.snap +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/tests/commands/snapshots/integration_test__commands__test_check_file_pair__forward_matching.snap +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/tests/commands/snapshots/integration_test__commands__test_check_file_pair__on_fully_populated_directory.snap +0 -0
- {devobs-0.1.0 → devobs-0.2.1}/tests/integration_test.rs +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "lasuillard/devobs",
|
|
2
|
+
"name": "lasuillard-s/devobs",
|
|
3
3
|
"image": "mcr.microsoft.com/devcontainers/rust:1-bookworm",
|
|
4
4
|
"features": {
|
|
5
|
-
"ghcr.io/devcontainers-
|
|
5
|
+
"ghcr.io/devcontainers-extra/features/pre-commit:2": {}
|
|
6
6
|
},
|
|
7
7
|
"onCreateCommand": "./.devcontainer/onCreateCommand.sh",
|
|
8
8
|
"postAttachCommand": "./.devcontainer/postAttachCommand.sh",
|
|
File without changes
|
|
@@ -10,18 +10,16 @@ permissions: read-all
|
|
|
10
10
|
|
|
11
11
|
jobs:
|
|
12
12
|
lint:
|
|
13
|
-
name: Lint
|
|
14
13
|
runs-on: ubuntu-latest
|
|
15
14
|
timeout-minutes: 10
|
|
16
15
|
steps:
|
|
17
|
-
-
|
|
18
|
-
uses: actions/checkout@v4
|
|
16
|
+
- uses: actions/checkout@v5
|
|
19
17
|
|
|
20
18
|
- name: Set up Rust
|
|
21
19
|
run: rustup show
|
|
22
20
|
|
|
23
21
|
- name: Manage Rust cache
|
|
24
|
-
uses: Swatinem/rust-cache@v2
|
|
22
|
+
uses: Swatinem/rust-cache@v2.8.1
|
|
25
23
|
|
|
26
24
|
- name: Check code formatting
|
|
27
25
|
run: cargo fmt --check
|
|
@@ -30,24 +28,22 @@ jobs:
|
|
|
30
28
|
run: cargo clippy
|
|
31
29
|
|
|
32
30
|
test:
|
|
33
|
-
name: Test
|
|
34
31
|
runs-on: ubuntu-latest
|
|
35
32
|
timeout-minutes: 10
|
|
36
33
|
permissions:
|
|
37
34
|
contents: read
|
|
38
35
|
id-token: write
|
|
39
36
|
steps:
|
|
40
|
-
-
|
|
41
|
-
uses: actions/checkout@v4
|
|
37
|
+
- uses: actions/checkout@v5
|
|
42
38
|
|
|
43
39
|
- name: Set up Rust
|
|
44
40
|
run: rustup show
|
|
45
41
|
|
|
46
42
|
- name: Manage Rust cache
|
|
47
|
-
uses: Swatinem/rust-cache@v2
|
|
43
|
+
uses: Swatinem/rust-cache@v2.8.1
|
|
48
44
|
|
|
49
45
|
- name: Install devtools
|
|
50
|
-
uses: taiki-e/install-action@v2
|
|
46
|
+
uses: taiki-e/install-action@v2.62.48
|
|
51
47
|
with:
|
|
52
48
|
tool: cargo-binstall,cargo-llvm-cov,cargo-nextest
|
|
53
49
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: Prepare Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
tag:
|
|
7
|
+
description: Semver-style tag for release (e.g., v1.0.0)
|
|
8
|
+
required: true
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
create-pr:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
timeout-minutes: 5
|
|
14
|
+
permissions:
|
|
15
|
+
contents: write
|
|
16
|
+
pull-requests: write
|
|
17
|
+
steps:
|
|
18
|
+
# TODO(lasuillard): Validate tag format more strictly (semver)
|
|
19
|
+
- name: Check tag format
|
|
20
|
+
run: |
|
|
21
|
+
if [[ ! "${{ inputs.tag }}" =~ ^v ]]; then
|
|
22
|
+
echo "Tag must start with 'v'"
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
- uses: actions/checkout@v5
|
|
27
|
+
|
|
28
|
+
# https://github.com/killercup/cargo-edit/issues/864
|
|
29
|
+
- name: Set version
|
|
30
|
+
run: |
|
|
31
|
+
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
32
|
+
brew install cargo-edit
|
|
33
|
+
tag="${{ inputs.tag }}"
|
|
34
|
+
tag_no_v="${tag#v}"
|
|
35
|
+
cargo set-version "${tag#v}"
|
|
36
|
+
|
|
37
|
+
- name: Generate GitHub App token
|
|
38
|
+
uses: actions/create-github-app-token@v2
|
|
39
|
+
id: generate-token
|
|
40
|
+
with:
|
|
41
|
+
app-id: ${{ vars.GH_APP_ID }}
|
|
42
|
+
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
|
|
43
|
+
|
|
44
|
+
- name: Create pull request
|
|
45
|
+
uses: peter-evans/create-pull-request@v7.0.8
|
|
46
|
+
with:
|
|
47
|
+
token: ${{ steps.generate-token.outputs.token }}
|
|
48
|
+
sign-commits: true
|
|
49
|
+
title: Prepare release (${{ inputs.tag }})
|
|
50
|
+
branch: release/${{ inputs.tag }}
|
|
51
|
+
delete-branch: true
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
name: Release
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
- main
|
|
7
|
-
tags:
|
|
8
|
-
- v*
|
|
9
|
-
|
|
10
|
-
permissions: read-all
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
11
6
|
|
|
12
7
|
jobs:
|
|
13
8
|
build:
|
|
@@ -18,12 +13,13 @@ jobs:
|
|
|
18
13
|
- platform: ubuntu-latest
|
|
19
14
|
target: x86_64
|
|
20
15
|
|
|
21
|
-
name:
|
|
16
|
+
name: build (${{ matrix.target }})
|
|
22
17
|
runs-on: ${{ matrix.platform }}
|
|
23
18
|
timeout-minutes: 15
|
|
19
|
+
permissions:
|
|
20
|
+
contents: read
|
|
24
21
|
steps:
|
|
25
|
-
-
|
|
26
|
-
uses: actions/checkout@v4
|
|
22
|
+
- uses: actions/checkout@v5
|
|
27
23
|
|
|
28
24
|
- name: Build wheels
|
|
29
25
|
uses: PyO3/maturin-action@v1
|
|
@@ -32,7 +28,7 @@ jobs:
|
|
|
32
28
|
args: --release --out dist
|
|
33
29
|
|
|
34
30
|
- name: Upload wheels as artifact
|
|
35
|
-
uses: actions/upload-artifact@
|
|
31
|
+
uses: actions/upload-artifact@v5
|
|
36
32
|
with:
|
|
37
33
|
name: dist-${{ matrix.target }}
|
|
38
34
|
path: dist
|
|
@@ -40,9 +36,10 @@ jobs:
|
|
|
40
36
|
sdist:
|
|
41
37
|
runs-on: ubuntu-latest
|
|
42
38
|
timeout-minutes: 15
|
|
39
|
+
permissions:
|
|
40
|
+
contents: read
|
|
43
41
|
steps:
|
|
44
|
-
-
|
|
45
|
-
uses: actions/checkout@v4
|
|
42
|
+
- uses: actions/checkout@v5
|
|
46
43
|
|
|
47
44
|
- name: Build sdist
|
|
48
45
|
uses: PyO3/maturin-action@v1
|
|
@@ -51,24 +48,22 @@ jobs:
|
|
|
51
48
|
args: --out dist
|
|
52
49
|
|
|
53
50
|
- name: Upload sdist as artifact
|
|
54
|
-
uses: actions/upload-artifact@
|
|
51
|
+
uses: actions/upload-artifact@v5
|
|
55
52
|
with:
|
|
56
53
|
name: sdist
|
|
57
54
|
path: dist
|
|
58
55
|
|
|
59
56
|
release:
|
|
60
|
-
name: Release
|
|
61
57
|
needs:
|
|
62
58
|
- build
|
|
63
59
|
- sdist
|
|
64
60
|
runs-on: ubuntu-latest
|
|
65
|
-
if: startsWith(github.ref, 'refs/tags/v')
|
|
66
61
|
timeout-minutes: 5
|
|
67
62
|
permissions:
|
|
68
63
|
contents: write
|
|
69
64
|
steps:
|
|
70
65
|
- name: Download binary artifacts
|
|
71
|
-
uses: actions/download-artifact@
|
|
66
|
+
uses: actions/download-artifact@v6
|
|
72
67
|
with:
|
|
73
68
|
path: dist
|
|
74
69
|
|
|
@@ -76,13 +71,13 @@ jobs:
|
|
|
76
71
|
run: ls -l --all --recursive dist
|
|
77
72
|
|
|
78
73
|
- name: Create release
|
|
79
|
-
uses: softprops/action-gh-release@v2
|
|
74
|
+
uses: softprops/action-gh-release@v2.4.1
|
|
80
75
|
with:
|
|
76
|
+
tag_name: ${{ github.event.release.tag_name }}
|
|
81
77
|
generate_release_notes: true
|
|
82
78
|
files: dist/*
|
|
83
79
|
|
|
84
80
|
publish-pypi:
|
|
85
|
-
name: Publish to PyPI
|
|
86
81
|
needs: release
|
|
87
82
|
runs-on: ubuntu-latest
|
|
88
83
|
environment: pypi
|
|
@@ -91,7 +86,7 @@ jobs:
|
|
|
91
86
|
id-token: write
|
|
92
87
|
steps:
|
|
93
88
|
- name: Download binary artifacts
|
|
94
|
-
uses: actions/download-artifact@
|
|
89
|
+
uses: actions/download-artifact@v6
|
|
95
90
|
with:
|
|
96
91
|
path: dist
|
|
97
92
|
merge-multiple: true
|
|
@@ -6,11 +6,24 @@ exclude: |
|
|
|
6
6
|
)
|
|
7
7
|
repos:
|
|
8
8
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
9
|
-
rev:
|
|
9
|
+
rev: v6.0.0
|
|
10
10
|
hooks:
|
|
11
11
|
- id: trailing-whitespace
|
|
12
12
|
- id: end-of-file-fixer
|
|
13
13
|
|
|
14
|
+
- repo: https://github.com/lasuillard-s/devobs
|
|
15
|
+
rev: main # Dogfooding; pin to a specific version when stable
|
|
16
|
+
hooks:
|
|
17
|
+
# Ensure each command has its test file pair
|
|
18
|
+
- id: check-file-pair
|
|
19
|
+
args:
|
|
20
|
+
- --log-level
|
|
21
|
+
- trace
|
|
22
|
+
- --from=src/commands
|
|
23
|
+
- --to=tests/commands
|
|
24
|
+
- --include=*.rs
|
|
25
|
+
- --expect={to}/{relative_from}/test_{filename}
|
|
26
|
+
|
|
14
27
|
- repo: local
|
|
15
28
|
hooks:
|
|
16
29
|
- id: cargo-fmt
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# NOTE: We use pipx to run the devobs commands, otherwise it would require users
|
|
2
|
+
# to install Rust toolchain and dependencies to build the project.
|
|
3
|
+
# * This hook configuration file is updated separately from the latest release,
|
|
4
|
+
# * so the version specified in entry may not always be the latest one.
|
|
5
|
+
- id: devobs
|
|
6
|
+
name: devobs
|
|
7
|
+
description: Run devobs commands using pipx
|
|
8
|
+
language: system
|
|
9
|
+
entry: pipx run 'devobs~=0.2.0'
|
|
10
|
+
|
|
11
|
+
# Shortcuts for each command for convenience
|
|
12
|
+
- id: check-file-pair
|
|
13
|
+
name: check-file-pair
|
|
14
|
+
language: system
|
|
15
|
+
entry: pipx run 'devobs~=0.2.0' check-file-pair
|
|
16
|
+
pass_filenames: false
|
|
17
|
+
|
|
18
|
+
- id: assert-diff
|
|
19
|
+
name: assert-diff
|
|
20
|
+
language: system
|
|
21
|
+
entry: pipx run 'devobs~=0.2.0' assert-diff
|
|
22
|
+
pass_filenames: false
|
|
@@ -2,21 +2,6 @@
|
|
|
2
2
|
# It is not intended for manual editing.
|
|
3
3
|
version = 4
|
|
4
4
|
|
|
5
|
-
[[package]]
|
|
6
|
-
name = "addr2line"
|
|
7
|
-
version = "0.24.2"
|
|
8
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
9
|
-
checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1"
|
|
10
|
-
dependencies = [
|
|
11
|
-
"gimli",
|
|
12
|
-
]
|
|
13
|
-
|
|
14
|
-
[[package]]
|
|
15
|
-
name = "adler2"
|
|
16
|
-
version = "2.0.0"
|
|
17
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
18
|
-
checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
|
|
19
|
-
|
|
20
5
|
[[package]]
|
|
21
6
|
name = "aho-corasick"
|
|
22
7
|
version = "1.1.3"
|
|
@@ -84,13 +69,12 @@ checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
|
|
|
84
69
|
|
|
85
70
|
[[package]]
|
|
86
71
|
name = "assert_cmd"
|
|
87
|
-
version = "2.
|
|
72
|
+
version = "2.1.1"
|
|
88
73
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
89
|
-
checksum = "
|
|
74
|
+
checksum = "bcbb6924530aa9e0432442af08bbcafdad182db80d2e560da42a6d442535bf85"
|
|
90
75
|
dependencies = [
|
|
91
76
|
"anstyle",
|
|
92
77
|
"bstr",
|
|
93
|
-
"doc-comment",
|
|
94
78
|
"libc",
|
|
95
79
|
"predicates",
|
|
96
80
|
"predicates-core",
|
|
@@ -110,21 +94,6 @@ version = "1.4.0"
|
|
|
110
94
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
111
95
|
checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
|
|
112
96
|
|
|
113
|
-
[[package]]
|
|
114
|
-
name = "backtrace"
|
|
115
|
-
version = "0.3.75"
|
|
116
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
117
|
-
checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002"
|
|
118
|
-
dependencies = [
|
|
119
|
-
"addr2line",
|
|
120
|
-
"cfg-if",
|
|
121
|
-
"libc",
|
|
122
|
-
"miniz_oxide",
|
|
123
|
-
"object",
|
|
124
|
-
"rustc-demangle",
|
|
125
|
-
"windows-targets 0.52.6",
|
|
126
|
-
]
|
|
127
|
-
|
|
128
97
|
[[package]]
|
|
129
98
|
name = "base64"
|
|
130
99
|
version = "0.22.1"
|
|
@@ -260,7 +229,7 @@ dependencies = [
|
|
|
260
229
|
|
|
261
230
|
[[package]]
|
|
262
231
|
name = "devobs"
|
|
263
|
-
version = "0.1
|
|
232
|
+
version = "0.2.1"
|
|
264
233
|
dependencies = [
|
|
265
234
|
"anyhow",
|
|
266
235
|
"assert_cmd",
|
|
@@ -272,6 +241,7 @@ dependencies = [
|
|
|
272
241
|
"regex",
|
|
273
242
|
"reqwest",
|
|
274
243
|
"rstest",
|
|
244
|
+
"serde",
|
|
275
245
|
"simplelog",
|
|
276
246
|
"strfmt",
|
|
277
247
|
"sugars",
|
|
@@ -296,12 +266,6 @@ dependencies = [
|
|
|
296
266
|
"syn",
|
|
297
267
|
]
|
|
298
268
|
|
|
299
|
-
[[package]]
|
|
300
|
-
name = "doc-comment"
|
|
301
|
-
version = "0.3.3"
|
|
302
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
303
|
-
checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
|
|
304
|
-
|
|
305
269
|
[[package]]
|
|
306
270
|
name = "downcast"
|
|
307
271
|
version = "0.11.0"
|
|
@@ -462,12 +426,6 @@ dependencies = [
|
|
|
462
426
|
"wasi 0.14.2+wasi-0.2.4",
|
|
463
427
|
]
|
|
464
428
|
|
|
465
|
-
[[package]]
|
|
466
|
-
name = "gimli"
|
|
467
|
-
version = "0.31.1"
|
|
468
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
469
|
-
checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
|
|
470
|
-
|
|
471
429
|
[[package]]
|
|
472
430
|
name = "glob"
|
|
473
431
|
version = "0.3.2"
|
|
@@ -611,7 +569,7 @@ dependencies = [
|
|
|
611
569
|
"hyper",
|
|
612
570
|
"libc",
|
|
613
571
|
"pin-project-lite",
|
|
614
|
-
"socket2",
|
|
572
|
+
"socket2 0.5.9",
|
|
615
573
|
"tokio",
|
|
616
574
|
"tower-service",
|
|
617
575
|
"tracing",
|
|
@@ -819,15 +777,6 @@ version = "0.3.17"
|
|
|
819
777
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
820
778
|
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
|
|
821
779
|
|
|
822
|
-
[[package]]
|
|
823
|
-
name = "miniz_oxide"
|
|
824
|
-
version = "0.8.8"
|
|
825
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
826
|
-
checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a"
|
|
827
|
-
dependencies = [
|
|
828
|
-
"adler2",
|
|
829
|
-
]
|
|
830
|
-
|
|
831
780
|
[[package]]
|
|
832
781
|
name = "mio"
|
|
833
782
|
version = "1.0.4"
|
|
@@ -897,15 +846,6 @@ dependencies = [
|
|
|
897
846
|
"libc",
|
|
898
847
|
]
|
|
899
848
|
|
|
900
|
-
[[package]]
|
|
901
|
-
name = "object"
|
|
902
|
-
version = "0.36.7"
|
|
903
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
904
|
-
checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87"
|
|
905
|
-
dependencies = [
|
|
906
|
-
"memchr",
|
|
907
|
-
]
|
|
908
|
-
|
|
909
849
|
[[package]]
|
|
910
850
|
name = "once_cell"
|
|
911
851
|
version = "1.21.3"
|
|
@@ -1095,9 +1035,9 @@ dependencies = [
|
|
|
1095
1035
|
|
|
1096
1036
|
[[package]]
|
|
1097
1037
|
name = "regex"
|
|
1098
|
-
version = "1.
|
|
1038
|
+
version = "1.12.2"
|
|
1099
1039
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1100
|
-
checksum = "
|
|
1040
|
+
checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
|
|
1101
1041
|
dependencies = [
|
|
1102
1042
|
"aho-corasick",
|
|
1103
1043
|
"memchr",
|
|
@@ -1107,9 +1047,9 @@ dependencies = [
|
|
|
1107
1047
|
|
|
1108
1048
|
[[package]]
|
|
1109
1049
|
name = "regex-automata"
|
|
1110
|
-
version = "0.4.
|
|
1050
|
+
version = "0.4.13"
|
|
1111
1051
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1112
|
-
checksum = "
|
|
1052
|
+
checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
|
|
1113
1053
|
dependencies = [
|
|
1114
1054
|
"aho-corasick",
|
|
1115
1055
|
"memchr",
|
|
@@ -1188,21 +1128,20 @@ dependencies = [
|
|
|
1188
1128
|
|
|
1189
1129
|
[[package]]
|
|
1190
1130
|
name = "rstest"
|
|
1191
|
-
version = "0.
|
|
1131
|
+
version = "0.26.1"
|
|
1192
1132
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1193
|
-
checksum = "
|
|
1133
|
+
checksum = "f5a3193c063baaa2a95a33f03035c8a72b83d97a54916055ba22d35ed3839d49"
|
|
1194
1134
|
dependencies = [
|
|
1195
1135
|
"futures-timer",
|
|
1196
1136
|
"futures-util",
|
|
1197
1137
|
"rstest_macros",
|
|
1198
|
-
"rustc_version",
|
|
1199
1138
|
]
|
|
1200
1139
|
|
|
1201
1140
|
[[package]]
|
|
1202
1141
|
name = "rstest_macros"
|
|
1203
|
-
version = "0.
|
|
1142
|
+
version = "0.26.1"
|
|
1204
1143
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1205
|
-
checksum = "
|
|
1144
|
+
checksum = "9c845311f0ff7951c5506121a9ad75aec44d083c31583b2ea5a30bcb0b0abba0"
|
|
1206
1145
|
dependencies = [
|
|
1207
1146
|
"cfg-if",
|
|
1208
1147
|
"glob",
|
|
@@ -1216,12 +1155,6 @@ dependencies = [
|
|
|
1216
1155
|
"unicode-ident",
|
|
1217
1156
|
]
|
|
1218
1157
|
|
|
1219
|
-
[[package]]
|
|
1220
|
-
name = "rustc-demangle"
|
|
1221
|
-
version = "0.1.24"
|
|
1222
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1223
|
-
checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
|
|
1224
|
-
|
|
1225
1158
|
[[package]]
|
|
1226
1159
|
name = "rustc_version"
|
|
1227
1160
|
version = "0.4.1"
|
|
@@ -1344,18 +1277,28 @@ checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
|
|
|
1344
1277
|
|
|
1345
1278
|
[[package]]
|
|
1346
1279
|
name = "serde"
|
|
1347
|
-
version = "1.0.
|
|
1280
|
+
version = "1.0.228"
|
|
1281
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1282
|
+
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
|
|
1283
|
+
dependencies = [
|
|
1284
|
+
"serde_core",
|
|
1285
|
+
"serde_derive",
|
|
1286
|
+
]
|
|
1287
|
+
|
|
1288
|
+
[[package]]
|
|
1289
|
+
name = "serde_core"
|
|
1290
|
+
version = "1.0.228"
|
|
1348
1291
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1349
|
-
checksum = "
|
|
1292
|
+
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
|
|
1350
1293
|
dependencies = [
|
|
1351
1294
|
"serde_derive",
|
|
1352
1295
|
]
|
|
1353
1296
|
|
|
1354
1297
|
[[package]]
|
|
1355
1298
|
name = "serde_derive"
|
|
1356
|
-
version = "1.0.
|
|
1299
|
+
version = "1.0.228"
|
|
1357
1300
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1358
|
-
checksum = "
|
|
1301
|
+
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
|
|
1359
1302
|
dependencies = [
|
|
1360
1303
|
"proc-macro2",
|
|
1361
1304
|
"quote",
|
|
@@ -1443,6 +1386,16 @@ dependencies = [
|
|
|
1443
1386
|
"windows-sys 0.52.0",
|
|
1444
1387
|
]
|
|
1445
1388
|
|
|
1389
|
+
[[package]]
|
|
1390
|
+
name = "socket2"
|
|
1391
|
+
version = "0.6.0"
|
|
1392
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1393
|
+
checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807"
|
|
1394
|
+
dependencies = [
|
|
1395
|
+
"libc",
|
|
1396
|
+
"windows-sys 0.59.0",
|
|
1397
|
+
]
|
|
1398
|
+
|
|
1446
1399
|
[[package]]
|
|
1447
1400
|
name = "stable_deref_trait"
|
|
1448
1401
|
version = "1.2.0"
|
|
@@ -1527,15 +1480,15 @@ dependencies = [
|
|
|
1527
1480
|
|
|
1528
1481
|
[[package]]
|
|
1529
1482
|
name = "tempfile"
|
|
1530
|
-
version = "3.
|
|
1483
|
+
version = "3.23.0"
|
|
1531
1484
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1532
|
-
checksum = "
|
|
1485
|
+
checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
|
|
1533
1486
|
dependencies = [
|
|
1534
1487
|
"fastrand",
|
|
1535
1488
|
"getrandom 0.3.3",
|
|
1536
1489
|
"once_cell",
|
|
1537
1490
|
"rustix",
|
|
1538
|
-
"windows-sys 0.
|
|
1491
|
+
"windows-sys 0.61.2",
|
|
1539
1492
|
]
|
|
1540
1493
|
|
|
1541
1494
|
[[package]]
|
|
@@ -1598,27 +1551,26 @@ dependencies = [
|
|
|
1598
1551
|
|
|
1599
1552
|
[[package]]
|
|
1600
1553
|
name = "tokio"
|
|
1601
|
-
version = "1.
|
|
1554
|
+
version = "1.48.0"
|
|
1602
1555
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1603
|
-
checksum = "
|
|
1556
|
+
checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
|
|
1604
1557
|
dependencies = [
|
|
1605
|
-
"backtrace",
|
|
1606
1558
|
"bytes",
|
|
1607
1559
|
"libc",
|
|
1608
1560
|
"mio",
|
|
1609
1561
|
"parking_lot",
|
|
1610
1562
|
"pin-project-lite",
|
|
1611
1563
|
"signal-hook-registry",
|
|
1612
|
-
"socket2",
|
|
1564
|
+
"socket2 0.6.0",
|
|
1613
1565
|
"tokio-macros",
|
|
1614
|
-
"windows-sys 0.
|
|
1566
|
+
"windows-sys 0.61.2",
|
|
1615
1567
|
]
|
|
1616
1568
|
|
|
1617
1569
|
[[package]]
|
|
1618
1570
|
name = "tokio-macros"
|
|
1619
|
-
version = "2.
|
|
1571
|
+
version = "2.6.0"
|
|
1620
1572
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1621
|
-
checksum = "
|
|
1573
|
+
checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
|
|
1622
1574
|
dependencies = [
|
|
1623
1575
|
"proc-macro2",
|
|
1624
1576
|
"quote",
|
|
@@ -1897,6 +1849,12 @@ version = "0.1.1"
|
|
|
1897
1849
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1898
1850
|
checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
|
|
1899
1851
|
|
|
1852
|
+
[[package]]
|
|
1853
|
+
name = "windows-link"
|
|
1854
|
+
version = "0.2.1"
|
|
1855
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1856
|
+
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
|
1857
|
+
|
|
1900
1858
|
[[package]]
|
|
1901
1859
|
name = "windows-registry"
|
|
1902
1860
|
version = "0.4.0"
|
|
@@ -1914,7 +1872,7 @@ version = "0.3.4"
|
|
|
1914
1872
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1915
1873
|
checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
|
|
1916
1874
|
dependencies = [
|
|
1917
|
-
"windows-link",
|
|
1875
|
+
"windows-link 0.1.1",
|
|
1918
1876
|
]
|
|
1919
1877
|
|
|
1920
1878
|
[[package]]
|
|
@@ -1923,7 +1881,7 @@ version = "0.3.1"
|
|
|
1923
1881
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1924
1882
|
checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319"
|
|
1925
1883
|
dependencies = [
|
|
1926
|
-
"windows-link",
|
|
1884
|
+
"windows-link 0.1.1",
|
|
1927
1885
|
]
|
|
1928
1886
|
|
|
1929
1887
|
[[package]]
|
|
@@ -1944,6 +1902,15 @@ dependencies = [
|
|
|
1944
1902
|
"windows-targets 0.52.6",
|
|
1945
1903
|
]
|
|
1946
1904
|
|
|
1905
|
+
[[package]]
|
|
1906
|
+
name = "windows-sys"
|
|
1907
|
+
version = "0.61.2"
|
|
1908
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1909
|
+
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
|
1910
|
+
dependencies = [
|
|
1911
|
+
"windows-link 0.2.1",
|
|
1912
|
+
]
|
|
1913
|
+
|
|
1947
1914
|
[[package]]
|
|
1948
1915
|
name = "windows-targets"
|
|
1949
1916
|
version = "0.52.6"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "devobs"
|
|
3
|
-
version = "0.1
|
|
3
|
+
version = "0.2.1"
|
|
4
4
|
edition = "2024"
|
|
5
5
|
description = "CLI for obsessed developers."
|
|
6
6
|
readme = "README.md"
|
|
@@ -12,17 +12,18 @@ license = "MIT"
|
|
|
12
12
|
clap = { version = "4.5.38", features = ["derive"] }
|
|
13
13
|
glob = "0.3.2"
|
|
14
14
|
log = "0.4.27"
|
|
15
|
-
regex = "1.
|
|
15
|
+
regex = "1.12.2"
|
|
16
16
|
simplelog = "0.12.2"
|
|
17
17
|
strfmt = "0.2.4"
|
|
18
|
-
tokio = { version = "1.
|
|
18
|
+
tokio = { version = "1.48.0", features = ["full"] }
|
|
19
19
|
anyhow = "1.0.86"
|
|
20
20
|
sugars = "3.0.1"
|
|
21
|
+
serde = { version = "1.0.228", features = ["derive"] }
|
|
21
22
|
|
|
22
23
|
[dev-dependencies]
|
|
23
|
-
assert_cmd = "2.
|
|
24
|
+
assert_cmd = "2.1.1"
|
|
24
25
|
insta = "1.43.1"
|
|
25
26
|
mockall = "0.13.0"
|
|
26
27
|
reqwest = "0.12.5"
|
|
27
|
-
rstest = "0.
|
|
28
|
-
tempfile = "3.
|
|
28
|
+
rstest = "0.26.1"
|
|
29
|
+
tempfile = "3.23.0"
|
|
@@ -28,7 +28,8 @@ update: ## Update deps and tools
|
|
|
28
28
|
.PHONY: update
|
|
29
29
|
|
|
30
30
|
run: ## Run development application
|
|
31
|
-
|
|
31
|
+
read -p "Enter command line arguments: " args
|
|
32
|
+
cargo watch --exec "run -- --log-level debug $$args"
|
|
32
33
|
.PHONY: run
|
|
33
34
|
|
|
34
35
|
|
|
@@ -51,6 +52,5 @@ lint: ## Run linters
|
|
|
51
52
|
test: ## Run tests
|
|
52
53
|
cargo llvm-cov nextest --workspace --lcov --output-path lcov.info \
|
|
53
54
|
&& cargo llvm-cov report --summary-only
|
|
54
|
-
|
|
55
55
|
cargo insta accept
|
|
56
56
|
.PHONY: test
|