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.
Files changed (56) hide show
  1. {devobs-0.1.0 → devobs-0.2.1}/.devcontainer/devcontainer.json +2 -2
  2. {devobs-0.1.0 → devobs-0.2.1}/.devcontainer/onCreateCommand.sh +0 -0
  3. {devobs-0.1.0 → devobs-0.2.1}/.devcontainer/postAttachCommand.sh +1 -1
  4. {devobs-0.1.0 → devobs-0.2.1}/.github/workflows/ci.yaml +5 -9
  5. devobs-0.2.1/.github/workflows/prepare-release.yaml +51 -0
  6. {devobs-0.1.0 → devobs-0.2.1}/.github/workflows/release.yaml +15 -20
  7. {devobs-0.1.0 → devobs-0.2.1}/.pre-commit-config.yaml +14 -1
  8. devobs-0.2.1/.pre-commit-hooks.yaml +22 -0
  9. {devobs-0.1.0 → devobs-0.2.1}/Cargo.lock +63 -96
  10. {devobs-0.1.0 → devobs-0.2.1}/Cargo.toml +7 -6
  11. {devobs-0.1.0 → devobs-0.2.1}/Makefile +2 -2
  12. {devobs-0.1.0 → devobs-0.2.1}/PKG-INFO +4 -3
  13. devobs-0.2.1/README.md +7 -0
  14. devobs-0.2.1/src/commands/assert_diff.rs +158 -0
  15. {devobs-0.1.0 → devobs-0.2.1}/src/commands/check_file_pair.rs +2 -1
  16. {devobs-0.1.0 → devobs-0.2.1}/src/commands.rs +1 -0
  17. {devobs-0.1.0 → devobs-0.2.1}/src/main.rs +5 -3
  18. {devobs-0.1.0 → devobs-0.2.1}/src/utils/fs.rs +19 -4
  19. {devobs-0.1.0 → devobs-0.2.1}/tests/commands/mod.rs +1 -0
  20. devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__changes_create-2.snap +5 -0
  21. devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__changes_create.snap +7 -0
  22. devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__changes_delete-2.snap +5 -0
  23. devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__changes_delete.snap +7 -0
  24. devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__changes_modify-2.snap +5 -0
  25. devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__changes_modify.snap +7 -0
  26. devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__empty_directory.snap +9 -0
  27. devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__no_changes.snap +9 -0
  28. devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__no_command_to_run.snap +5 -0
  29. devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__nonexistent_directory.snap +5 -0
  30. devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__on_command_error_ignore.snap +9 -0
  31. devobs-0.2.1/tests/commands/snapshots/integration_test__commands__test_assert_diff__on_command_error_propagate.snap +7 -0
  32. devobs-0.2.1/tests/commands/test_assert_diff.rs +334 -0
  33. {devobs-0.1.0 → devobs-0.2.1}/tests/commands/test_check_file_pair.rs +43 -38
  34. {devobs-0.1.0 → devobs-0.2.1}/tests/helpers.rs +19 -8
  35. devobs-0.1.0/.pre-commit-hooks.yaml +0 -7
  36. devobs-0.1.0/README.md +0 -7
  37. {devobs-0.1.0 → devobs-0.2.1}/.config/nextest.toml +0 -0
  38. {devobs-0.1.0 → devobs-0.2.1}/.editorconfig +0 -0
  39. {devobs-0.1.0 → devobs-0.2.1}/.gitattributes +0 -0
  40. {devobs-0.1.0 → devobs-0.2.1}/.github/dependabot.yaml +0 -0
  41. {devobs-0.1.0 → devobs-0.2.1}/.gitignore +0 -0
  42. {devobs-0.1.0 → devobs-0.2.1}/.rustfmt.toml +0 -0
  43. {devobs-0.1.0 → devobs-0.2.1}/.vscode/extensions.json +0 -0
  44. {devobs-0.1.0 → devobs-0.2.1}/.vscode/launch.json +0 -0
  45. {devobs-0.1.0 → devobs-0.2.1}/.vscode/settings.json +0 -0
  46. {devobs-0.1.0 → devobs-0.2.1}/LICENSE +0 -0
  47. {devobs-0.1.0 → devobs-0.2.1}/pyproject.toml +0 -0
  48. {devobs-0.1.0 → devobs-0.2.1}/rust-toolchain.toml +0 -0
  49. {devobs-0.1.0 → devobs-0.2.1}/src/utils.rs +0 -0
  50. {devobs-0.1.0 → devobs-0.2.1}/tests/commands/snapshots/integration_test__commands__test_check_file_pair__backward_matching.snap +0 -0
  51. {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
  52. {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
  53. {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
  54. {devobs-0.1.0 → devobs-0.2.1}/tests/commands/snapshots/integration_test__commands__test_check_file_pair__forward_matching.snap +0 -0
  55. {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
  56. {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-contrib/features/pre-commit:2": {}
5
+ "ghcr.io/devcontainers-extra/features/pre-commit:2": {}
6
6
  },
7
7
  "onCreateCommand": "./.devcontainer/onCreateCommand.sh",
8
8
  "postAttachCommand": "./.devcontainer/postAttachCommand.sh",
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
3
  # Convenience alias for this project
4
- echo 'alias dvo="cargo run --"' >> ~/.bashrc
4
+ echo 'alias devobs="cargo run --"' >> ~/.bashrc
5
5
 
6
6
  make install
@@ -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
- - name: Checkout
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
- - name: Checkout
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
- push:
5
- branches:
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: Build (${{ matrix.target }})
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
- - name: Checkout
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@v4
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
- - name: Checkout
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@v4
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@v4
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@v4
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: v4.5.0
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.0.17"
72
+ version = "2.1.1"
88
73
  source = "registry+https://github.com/rust-lang/crates.io-index"
89
- checksum = "2bd389a4b2970a01282ee455294913c0a43724daedcd1a24c3eb0ec1c1320b66"
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.0"
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.11.1"
1038
+ version = "1.12.2"
1099
1039
  source = "registry+https://github.com/rust-lang/crates.io-index"
1100
- checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
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.9"
1050
+ version = "0.4.13"
1111
1051
  source = "registry+https://github.com/rust-lang/crates.io-index"
1112
- checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
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.25.0"
1131
+ version = "0.26.1"
1192
1132
  source = "registry+https://github.com/rust-lang/crates.io-index"
1193
- checksum = "6fc39292f8613e913f7df8fa892b8944ceb47c247b78e1b1ae2f09e019be789d"
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.25.0"
1142
+ version = "0.26.1"
1204
1143
  source = "registry+https://github.com/rust-lang/crates.io-index"
1205
- checksum = "1f168d99749d307be9de54d23fd226628d99768225ef08f6ffb52e0182a27746"
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.219"
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 = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
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.219"
1299
+ version = "1.0.228"
1357
1300
  source = "registry+https://github.com/rust-lang/crates.io-index"
1358
- checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
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.20.0"
1483
+ version = "3.23.0"
1531
1484
  source = "registry+https://github.com/rust-lang/crates.io-index"
1532
- checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1"
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.59.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.45.1"
1554
+ version = "1.48.0"
1602
1555
  source = "registry+https://github.com/rust-lang/crates.io-index"
1603
- checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779"
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.52.0",
1566
+ "windows-sys 0.61.2",
1615
1567
  ]
1616
1568
 
1617
1569
  [[package]]
1618
1570
  name = "tokio-macros"
1619
- version = "2.5.0"
1571
+ version = "2.6.0"
1620
1572
  source = "registry+https://github.com/rust-lang/crates.io-index"
1621
- checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
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.0"
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.11.1"
15
+ regex = "1.12.2"
16
16
  simplelog = "0.12.2"
17
17
  strfmt = "0.2.4"
18
- tokio = { version = "1.45.1", features = ["full"] }
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.0.17"
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.25.0"
28
- tempfile = "3.20.0"
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
- cargo watch -x 'run -- --log-level debug'
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