on master help sign in
Merge remote-tracking branch 'origin/master' into fix-1063
commitda1016662588cae98aeb96b2ec570b14f02f9c62 authorMartin Nordholts <enselic@gmail.com> dateThu 7 Jan 2021, 12:56 (6 years ago) parent46487b2b6b7262
8 files changed+241−352
.github/workflows/CICD.yml+27−67 CHANGELOG.md+2 Cargo.lock+156−192 Cargo.toml+1 assets/syntaxes/02_Extra/VimL.sublime-syntax−91 src/bin/bat/clap_app.rs+7 src/bin/bat/main.rs+31−2 tests/integration_tests.rs+17
.github/workflows/CICD.yml+27−67
@@ -83,18 +83,18 @@ jobs:
8383 fail-fast: false
8484 matrix:
8585 job:
86− # { os, target, cargo-options, features, use-cross, toolchain }
87− - { os: ubuntu-latest , target: arm-unknown-linux-gnueabihf , use-cross: use-cross }
88− - { os: ubuntu-18.04 , target: aarch64-unknown-linux-gnu , use-cross: use-cross }
89− - { os: ubuntu-18.04 , target: i686-unknown-linux-gnu , use-cross: use-cross }
90− - { os: ubuntu-18.04 , target: i686-unknown-linux-musl , use-cross: use-cross }
91− - { os: ubuntu-18.04 , target: x86_64-unknown-linux-gnu , use-cross: use-cross }
92− - { os: ubuntu-18.04 , target: x86_64-unknown-linux-musl , use-cross: use-cross }
93− - { os: ubuntu-16.04 , target: x86_64-unknown-linux-gnu , use-cross: use-cross }
86+ # { os, target, cargo-options, features, use-cross }
87+ - { os: ubuntu-latest , target: arm-unknown-linux-gnueabihf , use-cross: true }
88+ - { os: ubuntu-18.04 , target: aarch64-unknown-linux-gnu , use-cross: true }
89+ - { os: ubuntu-18.04 , target: i686-unknown-linux-gnu , use-cross: true }
90+ - { os: ubuntu-18.04 , target: i686-unknown-linux-musl , use-cross: true }
91+ - { os: ubuntu-18.04 , target: x86_64-unknown-linux-gnu }
92+ - { os: ubuntu-18.04 , target: x86_64-unknown-linux-musl , use-cross: true }
93+ - { os: ubuntu-16.04 , target: x86_64-unknown-linux-gnu }
9494 - { os: macos-latest , target: x86_64-apple-darwin }
95− # - { os: windows-latest , target: i686-pc-windows-gnu } ## disabled; linker errors (missing '_imp____acrt_iob_func')
95+ # - { os: windows-latest , target: i686-pc-windows-gnu } ## disabled; error: linker `i686-w64-mingw32-gcc` not found
9696 - { os: windows-latest , target: i686-pc-windows-msvc }
97− # - { os: windows-latest , target: x86_64-pc-windows-gnu } ## disabled; linker errors (missing '_imp____acrt_iob_func')
97+ - { os: windows-latest , target: x86_64-pc-windows-gnu }
9898 - { os: windows-latest , target: x86_64-pc-windows-msvc }
9999 steps:
100100 - name: Git checkout
@@ -110,49 +110,24 @@ jobs:
110110 id: vars
111111 shell: bash
112112 run: |
113− # toolchain
114− TOOLCHAIN="stable" ## default to "stable" toolchain
115− # * specify alternate TOOLCHAIN for *-pc-windows-gnu targets; gnu targets on Windows are broken for the standard *-pc-windows-msvc toolchain (refs: <https://github.com/rust-lang/rust/issues/47048>, <https://github.com/rust-lang/rust/issues/53454>, <https://github.com/rust-lang/cargo/issues/6754>)
116− case ${{ matrix.job.target }} in *-pc-windows-gnu) TOOLCHAIN="stable-${{ matrix.job.target }}" ;; esac;
117− # * use requested TOOLCHAIN if specified
118− if [ -n "${{ matrix.job.toolchain }}" ]; then TOOLCHAIN="${{ matrix.job.toolchain }}" ; fi
119− echo set-output name=TOOLCHAIN::${TOOLCHAIN}
120− echo ::set-output name=TOOLCHAIN::${TOOLCHAIN}
121113 # staging directory
122114 STAGING='_staging'
123− echo set-output name=STAGING::${STAGING}
124115 echo ::set-output name=STAGING::${STAGING}
125116 # determine EXE suffix
126117 EXE_suffix="" ; case ${{ matrix.job.target }} in *-pc-windows-*) EXE_suffix=".exe" ;; esac;
127− echo set-output name=EXE_suffix::${EXE_suffix}
128118 echo ::set-output name=EXE_suffix::${EXE_suffix}
129119 # parse commit reference info
130− REF_NAME=${GITHUB_REF#refs/*/}
131− unset REF_BRANCH ; case ${GITHUB_REF} in refs/heads/*) REF_BRANCH=${GITHUB_REF#refs/heads/} ;; esac;
132120 unset REF_TAG ; case ${GITHUB_REF} in refs/tags/*) REF_TAG=${GITHUB_REF#refs/tags/} ;; esac;
133121 REF_SHAS=${GITHUB_SHA:0:8}
134− echo set-output name=REF_NAME::${REF_NAME}
135− echo set-output name=REF_BRANCH::${REF_BRANCH}
136− echo set-output name=REF_TAG::${REF_TAG}
137− echo set-output name=REF_SHAS::${REF_SHAS}
138− echo ::set-output name=REF_NAME::${REF_NAME}
139− echo ::set-output name=REF_BRANCH::${REF_BRANCH}
140− echo ::set-output name=REF_TAG::${REF_TAG}
141− echo ::set-output name=REF_SHAS::${REF_SHAS}
142122 # parse target
143123 unset TARGET_ARCH ; case ${{ matrix.job.target }} in arm-unknown-linux-gnueabihf) TARGET_ARCH=arm ;; i686-*) TARGET_ARCH=i686 ;; x86_64-*) TARGET_ARCH=x86_64 ;; esac;
144− echo set-output name=TARGET_ARCH::${TARGET_ARCH}
145124 echo ::set-output name=TARGET_ARCH::${TARGET_ARCH}
146125 unset TARGET_OS ; case ${{ matrix.job.target }} in *-linux-*) TARGET_OS=linux ;; *-apple-*) TARGET_OS=macos ;; *-windows-*) TARGET_OS=windows ;; esac;
147− echo set-output name=TARGET_OS::${TARGET_OS}
148126 echo ::set-output name=TARGET_OS::${TARGET_OS}
149127 # package name
150128 PKG_suffix=".tar.gz" ; case ${{ matrix.job.target }} in *-pc-windows-*) PKG_suffix=".zip" ;; esac;
151129 PKG_BASENAME=${PROJECT_NAME}-${REF_TAG:-$REF_SHAS}-${{ matrix.job.target }}
152130 PKG_NAME=${PKG_BASENAME}${PKG_suffix}
153− echo set-output name=PKG_suffix::${PKG_suffix}
154− echo set-output name=PKG_BASENAME::${PKG_BASENAME}
155− echo set-output name=PKG_NAME::${PKG_NAME}
156131 echo ::set-output name=PKG_suffix::${PKG_suffix}
157132 echo ::set-output name=PKG_BASENAME::${PKG_BASENAME}
158133 echo ::set-output name=PKG_NAME::${PKG_NAME}
@@ -160,7 +135,6 @@ jobs:
160135 unset DEPLOY ; if [[ $REF_TAG =~ ^[vV]?[0-9].* ]]; then DEPLOY='true' ; fi
161136 # unset deploy on ubuntu-18.04 x64 - we will deploy the tarball/deb built on ubuntu-16.04 x64
162137 if [ "${{ matrix.job.os }}" = "ubuntu-18.04" ] && [ "${{ matrix.job.target }}" = "x86_64-unknown-linux-gnu" ]; then unset DEPLOY; fi
163− echo set-output name=DEPLOY::${DEPLOY:-<empty>/false}
164138 echo ::set-output name=DEPLOY::${DEPLOY}
165139 # DPKG architecture?
166140 unset DPKG_ARCH
@@ -170,43 +144,31 @@ jobs:
170144 i686-*-linux-*) DPKG_ARCH=i686 ;;
171145 x86_64-*-linux-*) DPKG_ARCH=amd64 ;;
172146 esac;
173− echo set-output name=DPKG_ARCH::${DPKG_ARCH}
174147 echo ::set-output name=DPKG_ARCH::${DPKG_ARCH}
175148 # DPKG version?
176149 unset DPKG_VERSION ; if [[ $REF_TAG =~ ^[vV]?[0-9].* ]]; then DPKG_VERSION=${REF_TAG/#[vV]/} ; fi
177− echo set-output name=DPKG_VERSION::${DPKG_VERSION}
178150 echo ::set-output name=DPKG_VERSION::${DPKG_VERSION}
179151 # DPKG base name/conflicts?
180152 DPKG_BASENAME=${PROJECT_NAME}
181153 DPKG_CONFLICTS=${PROJECT_NAME}-musl
182154 case ${{ matrix.job.target }} in *-musl) DPKG_BASENAME=${PROJECT_NAME}-musl ; DPKG_CONFLICTS=${PROJECT_NAME} ;; esac;
183− echo set-output name=DPKG_BASENAME::${DPKG_BASENAME}
184− echo set-output name=DPKG_CONFLICTS::${DPKG_CONFLICTS}
185155 echo ::set-output name=DPKG_BASENAME::${DPKG_BASENAME}
186156 echo ::set-output name=DPKG_CONFLICTS::${DPKG_CONFLICTS}
187157 # DPKG name
188158 unset DPKG_NAME;
189159 if [[ -n $DPKG_ARCH && -n $DPKG_VERSION ]]; then DPKG_NAME="${DPKG_BASENAME}_${DPKG_VERSION}_${DPKG_ARCH}.deb" ; fi
190− echo set-output name=DPKG_NAME::${DPKG_NAME}
191160 echo ::set-output name=DPKG_NAME::${DPKG_NAME}
192161 # target-specific options
193− # * CARGO_USE_CROSS (truthy)
194− CARGO_USE_CROSS='true' ; case '${{ matrix.job.use-cross }}' in ''|0|f|false|n|no) unset CARGO_USE_CROSS ;; esac;
195− echo set-output name=CARGO_USE_CROSS::${CARGO_USE_CROSS:-<empty>/false}
196− echo ::set-output name=CARGO_USE_CROSS::${CARGO_USE_CROSS}
197162 # # * `arm` cannot be tested on ubuntu-* hosts (b/c testing is currently primarily done via comparison of target outputs with built-in outputs and the `arm` target is not executable on the host)
198163 JOB_DO_TESTING="true"
199164 case ${{ matrix.job.target }} in arm-*) unset JOB_DO_TESTING ;; esac;
200− echo set-output name=JOB_DO_TESTING::${JOB_DO_TESTING:-<empty>/false}
201165 echo ::set-output name=JOB_DO_TESTING::${JOB_DO_TESTING}
202166 # # * test only library unit tests and binary for arm-type targets
203167 unset CARGO_TEST_OPTIONS
204168 unset CARGO_TEST_OPTIONS ; case ${{ matrix.job.target }} in arm-* | aarch64-*) CARGO_TEST_OPTIONS="--lib --bin ${PROJECT_NAME}" ;; esac;
205− echo set-output name=CARGO_TEST_OPTIONS::${CARGO_TEST_OPTIONS}
206169 echo ::set-output name=CARGO_TEST_OPTIONS::${CARGO_TEST_OPTIONS}
207170 # * executable for `strip`?
208171 STRIP="strip" ; case ${{ matrix.job.target }} in arm-unknown-linux-gnueabihf) STRIP="arm-linux-gnueabihf-strip" ;; aarch64-unknown-linux-gnu) STRIP="aarch64-linux-gnu-strip" ;; *-pc-windows-msvc) STRIP="" ;; esac;
209− echo set-output name=STRIP::${STRIP}
210172 echo ::set-output name=STRIP::${STRIP}
211173 - name: Create all needed build/work directories
212174 shell: bash
@@ -218,7 +180,7 @@ jobs:
218180 - name: Install Rust toolchain
219181 uses: actions-rs/toolchain@v1
220182 with:
221− toolchain: ${{ steps.vars.outputs.TOOLCHAIN }}
183+ toolchain: stable
222184 target: ${{ matrix.job.target }}
223185 override: true
224186 profile: minimal # minimal component installation (ie, no documentation)
@@ -234,43 +196,49 @@ jobs:
234196 - name: Build
235197 uses: actions-rs/cargo@v1
236198 with:
237− use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
199+ use-cross: ${{ matrix.job.use-cross }}
238200 command: build
239201 args: --release --target=${{ matrix.job.target }} ${{ matrix.job.cargo-options }}
240202 - name: Test
241203 uses: actions-rs/cargo@v1
242204 with:
243− use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
205+ use-cross: ${{ matrix.job.use-cross }}
244206 command: test
245207 args: --target=${{ matrix.job.target }} ${{ steps.vars.outputs.CARGO_TEST_OPTIONS}} ${{ matrix.job.cargo-options }}
246208 - name: bat test run
247209 uses: actions-rs/cargo@v1
248210 with:
249− use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
211+ use-cross: ${{ matrix.job.use-cross }}
212+ command: run
213+ args: --target=${{ matrix.job.target }} ${{ matrix.job.cargo-options }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs
214+ - name: bat diagnostics output
215+ uses: actions-rs/cargo@v1
216+ with:
217+ use-cross: ${{ matrix.job.use-cross }}
250218 command: run
251− args: --target=${{ matrix.job.target }} ${{ matrix.job.cargo-options }} -- --paging=never --color=always --theme=ansi-dark Cargo.toml src/config.rs
219+ args: --target=${{ matrix.job.target }} ${{ matrix.job.cargo-options }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs --diagnostic
252220 - name: Check features regex-onig
253221 uses: actions-rs/cargo@v1
254222 with:
255− use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
223+ use-cross: ${{ matrix.job.use-cross }}
256224 command: check
257225 args: --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig
258226 - name: Check features regex-onig,git
259227 uses: actions-rs/cargo@v1
260228 with:
261− use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
229+ use-cross: ${{ matrix.job.use-cross }}
262230 command: check
263231 args: --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git
264232 - name: Check features regex-onig,paging
265233 uses: actions-rs/cargo@v1
266234 with:
267− use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
235+ use-cross: ${{ matrix.job.use-cross }}
268236 command: check
269237 args: --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,paging
270238 - name: Check features regex-onig,git,paging
271239 uses: actions-rs/cargo@v1
272240 with:
273− use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
241+ use-cross: ${{ matrix.job.use-cross }}
274242 command: check
275243 args: --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git,paging
276244 - name: Upload build artifacts
@@ -402,6 +370,7 @@ jobs:
402370
403371 coverage:
404372 name: Code Coverage
373+ if: "false" # Temporarily disabled until made functional again, see https://github.com/sharkdp/bat/pull/1484
405374 runs-on: ${{ matrix.job.os }}
406375 strategy:
407376 fail-fast: true
@@ -417,23 +386,14 @@ jobs:
417386 id: vars
418387 shell: bash
419388 run: |
420− # toolchain
421− TOOLCHAIN="nightly" ## default to "nightly" toolchain
422− # * use requested TOOLCHAIN if specified
423− if [ -n "${{ matrix.job.toolchain }}" ]; then TOOLCHAIN="${{ matrix.job.toolchain }}" ; fi
424− # * use requested TOOLCHAIN if specified
425− if [ -n "${{ matrix.job.toolchain }}" ]; then TOOLCHAIN="${{ matrix.job.toolchain }}" ; fi
426− echo set-output name=TOOLCHAIN::${TOOLCHAIN}
427− echo ::set-output name=TOOLCHAIN::${TOOLCHAIN}
428389 # target-specific options
429390 # * CODECOV_FLAGS
430391 CODECOV_FLAGS=$( echo "${{ matrix.job.os }}" | sed 's/[^[:alnum:]]/_/g' )
431− echo set-output name=CODECOV_FLAGS::${CODECOV_FLAGS}
432392 echo ::set-output name=CODECOV_FLAGS::${CODECOV_FLAGS}
433393 - name: rust toolchain ~ install
434394 uses: actions-rs/toolchain@v1
435395 with:
436− toolchain: ${{ steps.vars.outputs.TOOLCHAIN }}
396+ toolchain: ${{ matrix.job.toolchain }}
437397 override: true
438398 profile: minimal # minimal component installation (ie, no documentation)
439399 - name: Test
CHANGELOG.md+2
@@ -2,6 +2,7 @@
22
33
44## Features
5+
56- Use a pager when `bat --list-languages` is called, see #1394 (@stku1985)
67
78## Bugfixes
@@ -16,6 +17,7 @@
1617## Other
1718
1819- Performance improvements, see #1421 (@LovecraftianHorror)
20+- Added a new `--diagnostic` option to collect information for bug reports, see #1459 (@sharkdp)
1921
2022## Syntaxes
2123
Cargo.lock+156−192
@@ -8,9 +8,9 @@ checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
88
99[[package]]
1010name = "aho-corasick"
11−version = "0.7.13"
11+version = "0.7.15"
1212source = "registry+https://github.com/rust-lang/crates.io-index"
13−checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
13+checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
1414dependencies = [
1515 "memchr",
1616]
@@ -50,9 +50,9 @@ checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
5050
5151[[package]]
5252name = "arrayvec"
53−version = "0.5.1"
53+version = "0.5.2"
5454source = "registry+https://github.com/rust-lang/crates.io-index"
55−checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
55+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
5656
5757[[package]]
5858name = "assert_cmd"
@@ -86,9 +86,9 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
8686
8787[[package]]
8888name = "base64"
89−version = "0.12.3"
89+version = "0.13.0"
9090source = "registry+https://github.com/rust-lang/crates.io-index"
91−checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
91+checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
9292
9393[[package]]
9494name = "bat"
@@ -98,6 +98,7 @@ dependencies = [
9898 "ansi_term 0.12.1",
9999 "assert_cmd",
100100 "atty",
101+ "bugreport",
101102 "clap",
102103 "clircle",
103104 "console",
@@ -143,9 +144,9 @@ dependencies = [
143144
144145[[package]]
145146name = "bit-vec"
146−version = "0.6.2"
147+version = "0.6.3"
147148source = "registry+https://github.com/rust-lang/crates.io-index"
148−checksum = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3"
149+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
149150
150151[[package]]
151152name = "bitflags"
@@ -155,50 +156,33 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
155156
156157[[package]]
157158name = "blake2b_simd"
158−version = "0.5.10"
159+version = "0.5.11"
159160source = "registry+https://github.com/rust-lang/crates.io-index"
160−checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
161+checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
161162dependencies = [
162163 "arrayref",
163164 "arrayvec",
164165 "constant_time_eq",
165166]
166167
167−[[package]]
168−name = "block-buffer"
169−version = "0.7.3"
170−source = "registry+https://github.com/rust-lang/crates.io-index"
171−checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
172−dependencies = [
173− "block-padding",
174− "byte-tools",
175− "byteorder",
176− "generic-array",
177−]
178−
179−[[package]]
180−name = "block-padding"
181−version = "0.1.5"
182−source = "registry+https://github.com/rust-lang/crates.io-index"
183−checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
184−dependencies = [
185− "byte-tools",
186−]
187−
188168[[package]]
189169name = "bstr"
190−version = "0.2.13"
170+version = "0.2.14"
191171source = "registry+https://github.com/rust-lang/crates.io-index"
192−checksum = "31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931"
172+checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf"
193173dependencies = [
194174 "memchr",
195175]
196176
197177[[package]]
198−name = "byte-tools"
199−version = "0.3.1"
178+name = "bugreport"
179+version = "0.3.0"
200180source = "registry+https://github.com/rust-lang/crates.io-index"
201−checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
181+checksum = "116762017f173ea5d8103e75533f6bdb62cb6f2257c9c95672beb085a70daed8"
182+dependencies = [
183+ "snailquote",
184+ "sys-info",
185+]
202186
203187[[package]]
204188name = "byteorder"
@@ -208,9 +192,9 @@ checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
208192
209193[[package]]
210194name = "cc"
211−version = "1.0.60"
195+version = "1.0.66"
212196source = "registry+https://github.com/rust-lang/crates.io-index"
213−checksum = "ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"
197+checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
214198dependencies = [
215199 "jobserver",
216200]
@@ -297,21 +281,21 @@ dependencies = [
297281
298282[[package]]
299283name = "crc32fast"
300−version = "1.2.0"
284+version = "1.2.1"
301285source = "registry+https://github.com/rust-lang/crates.io-index"
302−checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
286+checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
303287dependencies = [
304− "cfg-if 0.1.10",
288+ "cfg-if 1.0.0",
305289]
306290
307291[[package]]
308292name = "crossbeam-utils"
309−version = "0.7.2"
293+version = "0.8.1"
310294source = "registry+https://github.com/rust-lang/crates.io-index"
311−checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
295+checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
312296dependencies = [
313297 "autocfg",
314− "cfg-if 0.1.10",
298+ "cfg-if 1.0.0",
315299 "lazy_static",
316300]
317301
@@ -321,15 +305,6 @@ version = "2.0.0"
321305source = "registry+https://github.com/rust-lang/crates.io-index"
322306checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
323307
324−[[package]]
325−name = "digest"
326−version = "0.8.1"
327−source = "registry+https://github.com/rust-lang/crates.io-index"
328−checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
329−dependencies = [
330− "generic-array",
331−]
332−
333308[[package]]
334309name = "dirs"
335310version = "3.0.1"
@@ -358,9 +333,9 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
358333
359334[[package]]
360335name = "dtoa"
361−version = "0.4.6"
336+version = "0.4.7"
362337source = "registry+https://github.com/rust-lang/crates.io-index"
363−checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b"
338+checksum = "88d7ed2934d741c6b37e33e3832298e8850b53fd2d2bea03873375596c7cea4e"
364339
365340[[package]]
366341name = "encode_unicode"
@@ -441,12 +416,6 @@ dependencies = [
441416 "version_check",
442417]
443418
444−[[package]]
445−name = "fake-simd"
446−version = "0.1.2"
447−source = "registry+https://github.com/rust-lang/crates.io-index"
448−checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
449−
450419[[package]]
451420name = "fancy-regex"
452421version = "0.3.5"
@@ -459,11 +428,11 @@ dependencies = [
459428
460429[[package]]
461430name = "flate2"
462−version = "1.0.18"
431+version = "1.0.19"
463432source = "registry+https://github.com/rust-lang/crates.io-index"
464−checksum = "da80be589a72651dcda34d8b35bcdc9b7254ad06325611074d9cc0fbb19f60ee"
433+checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129"
465434dependencies = [
466− "cfg-if 0.1.10",
435+ "cfg-if 1.0.0",
467436 "crc32fast",
468437 "libc",
469438 "miniz_oxide",
@@ -485,27 +454,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
485454checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
486455
487456[[package]]
488−name = "fuchsia-cprng"
489−version = "0.1.1"
457+name = "form_urlencoded"
458+version = "1.0.0"
490459source = "registry+https://github.com/rust-lang/crates.io-index"
491−checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
460+checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00"
461+dependencies = [
462+ "matches",
463+ "percent-encoding",
464+]
492465
493466[[package]]
494−name = "generic-array"
495−version = "0.12.3"
467+name = "fuchsia-cprng"
468+version = "0.1.1"
496469source = "registry+https://github.com/rust-lang/crates.io-index"
497−checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
498−dependencies = [
499− "typenum",
500−]
470+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
501471
502472[[package]]
503473name = "getrandom"
504−version = "0.1.15"
474+version = "0.1.16"
505475source = "registry+https://github.com/rust-lang/crates.io-index"
506−checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
476+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
507477dependencies = [
508− "cfg-if 0.1.10",
478+ "cfg-if 1.0.0",
509479 "libc",
510480 "wasi",
511481]
@@ -544,15 +514,18 @@ dependencies = [
544514
545515[[package]]
546516name = "hashbrown"
547−version = "0.9.1"
517+version = "0.8.2"
548518source = "registry+https://github.com/rust-lang/crates.io-index"
549−checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
519+checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25"
520+dependencies = [
521+ "autocfg",
522+]
550523
551524[[package]]
552525name = "hermit-abi"
553−version = "0.1.16"
526+version = "0.1.17"
554527source = "registry+https://github.com/rust-lang/crates.io-index"
555−checksum = "4c30f6d0bc6b00693347368a67d41b58f2fb851215ff1da49e90fe2c5c667151"
528+checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
556529dependencies = [
557530 "libc",
558531]
@@ -570,9 +543,9 @@ dependencies = [
570543
571544[[package]]
572545name = "indexmap"
573−version = "1.6.0"
546+version = "1.5.2"
574547source = "registry+https://github.com/rust-lang/crates.io-index"
575−checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2"
548+checksum = "4e47a3566dd4fd4eec714ae6ceabdee0caec795be835c223d92c2d40f1e8cf1c"
576549dependencies = [
577550 "autocfg",
578551 "hashbrown",
@@ -589,9 +562,9 @@ dependencies = [
589562
590563[[package]]
591564name = "itoa"
592−version = "0.4.6"
565+version = "0.4.7"
593566source = "registry+https://github.com/rust-lang/crates.io-index"
594−checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
567+checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
595568
596569[[package]]
597570name = "jobserver"
@@ -616,9 +589,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
616589
617590[[package]]
618591name = "libc"
619−version = "0.2.78"
592+version = "0.2.81"
620593source = "registry+https://github.com/rust-lang/crates.io-index"
621−checksum = "aa7087f49d294270db4e1928fc110c976cd4b9e5a16348e0a1df09afa99e6c98"
594+checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"
622595
623596[[package]]
624597name = "libgit2-sys"
@@ -677,12 +650,6 @@ dependencies = [
677650 "cfg-if 0.1.10",
678651]
679652
680−[[package]]
681−name = "maplit"
682−version = "1.0.2"
683−source = "registry+https://github.com/rust-lang/crates.io-index"
684−checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
685−
686653[[package]]
687654name = "matches"
688655version = "0.1.8"
@@ -691,15 +658,15 @@ checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
691658
692659[[package]]
693660name = "memchr"
694−version = "2.3.3"
661+version = "2.3.4"
695662source = "registry+https://github.com/rust-lang/crates.io-index"
696−checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
663+checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
697664
698665[[package]]
699666name = "miniz_oxide"
700−version = "0.4.2"
667+version = "0.4.3"
701668source = "registry+https://github.com/rust-lang/crates.io-index"
702−checksum = "c60c0dfe32c10b43a144bad8fc83538c52f58302c92300ea7ec7bf7b38d5a7b9"
669+checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
703670dependencies = [
704671 "adler",
705672 "autocfg",
@@ -725,9 +692,9 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
725692
726693[[package]]
727694name = "num-integer"
728−version = "0.1.43"
695+version = "0.1.44"
729696source = "registry+https://github.com/rust-lang/crates.io-index"
730−checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
697+checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
731698dependencies = [
732699 "autocfg",
733700 "num-traits",
@@ -735,18 +702,18 @@ dependencies = [
735702
736703[[package]]
737704name = "num-traits"
738−version = "0.2.12"
705+version = "0.2.14"
739706source = "registry+https://github.com/rust-lang/crates.io-index"
740−checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
707+checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
741708dependencies = [
742709 "autocfg",
743710]
744711
745712[[package]]
746713name = "onig"
747−version = "6.1.0"
714+version = "6.1.1"
748715source = "registry+https://github.com/rust-lang/crates.io-index"
749−checksum = "8a155d13862da85473665694f4c05d77fb96598bdceeaf696433c84ea9567e20"
716+checksum = "30b46fd9edbc018f0be4e366c24c46db44fac49cd01c039ae85308088b089dd5"
750717dependencies = [
751718 "bitflags",
752719 "lazy_static",
@@ -756,20 +723,14 @@ dependencies = [
756723
757724[[package]]
758725name = "onig_sys"
759−version = "69.5.1"
726+version = "69.6.0"
760727source = "registry+https://github.com/rust-lang/crates.io-index"
761−checksum = "9bff06597a6b17855040955cae613af000fc0bfc8ad49ea68b9479a74e59292d"
728+checksum = "ed063c96cf4c0f2e5d09324409d158b38a0a85a7b90fbd68c8cad75c495d5775"
762729dependencies = [
763730 "cc",
764731 "pkg-config",
765732]
766733
767−[[package]]
768−name = "opaque-debug"
769−version = "0.2.3"
770−source = "registry+https://github.com/rust-lang/crates.io-index"
771−checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
772−
773734[[package]]
774735name = "parking_lot"
775736version = "0.11.1"
@@ -819,51 +780,17 @@ dependencies = [
819780 "ucd-trie",
820781]
821782
822−[[package]]
823−name = "pest_derive"
824−version = "2.1.0"
825−source = "registry+https://github.com/rust-lang/crates.io-index"
826−checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
827−dependencies = [
828− "pest",
829− "pest_generator",
830−]
831−
832−[[package]]
833−name = "pest_generator"
834−version = "2.1.3"
835−source = "registry+https://github.com/rust-lang/crates.io-index"
836−checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55"
837−dependencies = [
838− "pest",
839− "pest_meta",
840− "proc-macro2",
841− "quote",
842− "syn",
843−]
844−
845−[[package]]
846−name = "pest_meta"
847−version = "2.1.3"
848−source = "registry+https://github.com/rust-lang/crates.io-index"
849−checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d"
850−dependencies = [
851− "maplit",
852− "pest",
853− "sha-1",
854−]
855−
856783[[package]]
857784name = "pkg-config"
858−version = "0.3.18"
785+version = "0.3.19"
859786source = "registry+https://github.com/rust-lang/crates.io-index"
860−checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
787+checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
861788
862789[[package]]
863790name = "plist"
864−version = "1.0.0"
791+version = "1.0.1"
865792source = "registry+https://github.com/rust-lang/crates.io-index"
866−checksum = "7b336d94e8e4ce29bf15bba393164629764744c567e8ad306cc1fdd0119967fd"
793+checksum = "4dc57ccf442c7414b790e8e7b72fb4d776a66c7680129360946d9aaa6f5311e9"
867794dependencies = [
868795 "base64",
869796 "chrono",
@@ -888,15 +815,15 @@ dependencies = [
888815
889816[[package]]
890817name = "predicates-core"
891−version = "1.0.0"
818+version = "1.0.1"
892819source = "registry+https://github.com/rust-lang/crates.io-index"
893−checksum = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178"
820+checksum = "fb3dbeaaf793584e29c58c7e3a82bbb3c7c06b63cea68d13b0e3cddc124104dc"
894821
895822[[package]]
896823name = "predicates-tree"
897−version = "1.0.0"
824+version = "1.0.1"
898825source = "registry+https://github.com/rust-lang/crates.io-index"
899−checksum = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124"
826+checksum = "aee95d988ee893cb35c06b148c80ed2cd52c8eea927f50ba7a0be1a786aeab73"
900827dependencies = [
901828 "predicates-core",
902829 "treeline",
@@ -913,9 +840,9 @@ dependencies = [
913840
914841[[package]]
915842name = "quote"
916−version = "1.0.7"
843+version = "1.0.8"
917844source = "registry+https://github.com/rust-lang/crates.io-index"
918−checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
845+checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"
919846dependencies = [
920847 "proc-macro2",
921848]
@@ -1003,9 +930,9 @@ dependencies = [
1003930
1004931[[package]]
1005932name = "rust-argon2"
1006−version = "0.8.2"
933+version = "0.8.3"
1007934source = "registry+https://github.com/rust-lang/crates.io-index"
1008−checksum = "9dab61250775933275e84053ac235621dfb739556d5c54a2f2e9313b7cf43a19"
935+checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
1009936dependencies = [
1010937 "base64",
1011938 "blake2b_simd",
@@ -1051,12 +978,11 @@ dependencies = [
1051978
1052979[[package]]
1053980name = "semver-parser"
1054−version = "0.10.0"
981+version = "0.10.2"
1055982source = "registry+https://github.com/rust-lang/crates.io-index"
1056−checksum = "0e012c6c5380fb91897ba7b9261a0f565e624e869d42fe1a1d03fa0d68a083d5"
983+checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
1057984dependencies = [
1058985 "pest",
1059− "pest_derive",
1060986]
1061987
1062988[[package]]
@@ -1081,9 +1007,9 @@ dependencies = [
10811007
10821008[[package]]
10831009name = "serde_json"
1084−version = "1.0.58"
1010+version = "1.0.61"
10851011source = "registry+https://github.com/rust-lang/crates.io-index"
1086−checksum = "a230ea9107ca2220eea9d46de97eddcb04cd00e92d13dda78e478dd33fa82bd4"
1012+checksum = "4fceb2595057b6891a4ee808f70054bd2d12f0e97f1cbb78689b59f676df325a"
10871013dependencies = [
10881014 "itoa",
10891015 "ryu",
@@ -1092,9 +1018,9 @@ dependencies = [
10921018
10931019[[package]]
10941020name = "serde_yaml"
1095−version = "0.8.14"
1021+version = "0.8.15"
10961022source = "registry+https://github.com/rust-lang/crates.io-index"
1097−checksum = "f7baae0a99f1a324984bcdc5f0718384c1f69775f1c7eec8b859b71b443e3fd7"
1023+checksum = "971be8f6e4d4a47163b405a3df70d14359186f9ab0f3a3ec37df144ca1ce089f"
10981024dependencies = [
10991025 "dtoa",
11001026 "linked-hash-map",
@@ -1124,18 +1050,6 @@ dependencies = [
11241050 "syn",
11251051]
11261052
1127−[[package]]
1128−name = "sha-1"
1129−version = "0.8.2"
1130−source = "registry+https://github.com/rust-lang/crates.io-index"
1131−checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
1132−dependencies = [
1133− "block-buffer",
1134− "digest",
1135− "fake-simd",
1136− "opaque-debug",
1137−]
1138−
11391053[[package]]
11401054name = "shell-words"
11411055version = "1.0.0"
@@ -1148,6 +1062,16 @@ version = "1.6.0"
11481062source = "registry+https://github.com/rust-lang/crates.io-index"
11491063checksum = "1a55ca5f3b68e41c979bf8c46a6f1da892ca4db8f94023ce0bd32407573b1ac0"
11501064
1065+[[package]]
1066+name = "snailquote"
1067+version = "0.3.0"
1068+source = "registry+https://github.com/rust-lang/crates.io-index"
1069+checksum = "f34b729d802f52194598858ac852c3fb3b33f6e026cd03195072ccb7bf3fc810"
1070+dependencies = [
1071+ "thiserror",
1072+ "unicode_categories",
1073+]
1074+
11511075[[package]]
11521076name = "std_prelude"
11531077version = "0.2.12"
@@ -1162,9 +1086,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
11621086
11631087[[package]]
11641088name = "syn"
1165−version = "1.0.42"
1089+version = "1.0.58"
11661090source = "registry+https://github.com/rust-lang/crates.io-index"
1167−checksum = "9c51d92969d209b54a98397e1b91c8ae82d8c87a7bb87df0b29aa2ad81454228"
1091+checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5"
11681092dependencies = [
11691093 "proc-macro2",
11701094 "quote",
@@ -1194,6 +1118,16 @@ dependencies = [
11941118 "yaml-rust",
11951119]
11961120
1121+[[package]]
1122+name = "sys-info"
1123+version = "0.7.0"
1124+source = "registry+https://github.com/rust-lang/crates.io-index"
1125+checksum = "e5cfbd84f86389198ade41b439f72a5b1b3a8ba728e61cd589e1720d0df44c39"
1126+dependencies = [
1127+ "cc",
1128+ "libc",
1129+]
1130+
11971131[[package]]
11981132name = "tempdir"
11991133version = "0.3.7"
@@ -1234,6 +1168,26 @@ dependencies = [
12341168 "unicode-width",
12351169]
12361170
1171+[[package]]
1172+name = "thiserror"
1173+version = "1.0.23"
1174+source = "registry+https://github.com/rust-lang/crates.io-index"
1175+checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"
1176+dependencies = [
1177+ "thiserror-impl",
1178+]
1179+
1180+[[package]]
1181+name = "thiserror-impl"
1182+version = "1.0.23"
1183+source = "registry+https://github.com/rust-lang/crates.io-index"
1184+checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"
1185+dependencies = [
1186+ "proc-macro2",
1187+ "quote",
1188+ "syn",
1189+]
1190+
12371191[[package]]
12381192name = "thread_local"
12391193version = "1.0.1"
@@ -1245,21 +1199,24 @@ dependencies = [
12451199
12461200[[package]]
12471201name = "tinyvec"
1248−version = "0.3.4"
1202+version = "1.1.0"
12491203source = "registry+https://github.com/rust-lang/crates.io-index"
1250−checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117"
1204+checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"
1205+dependencies = [
1206+ "tinyvec_macros",
1207+]
12511208
12521209[[package]]
1253−name = "treeline"
1210+name = "tinyvec_macros"
12541211version = "0.1.0"
12551212source = "registry+https://github.com/rust-lang/crates.io-index"
1256−checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
1213+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
12571214
12581215[[package]]
1259−name = "typenum"
1260−version = "1.12.0"
1216+name = "treeline"
1217+version = "0.1.0"
12611218source = "registry+https://github.com/rust-lang/crates.io-index"
1262−checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
1219+checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
12631220
12641221[[package]]
12651222name = "ucd-trie"
@@ -1278,9 +1235,9 @@ dependencies = [
12781235
12791236[[package]]
12801237name = "unicode-normalization"
1281−version = "0.1.13"
1238+version = "0.1.16"
12821239source = "registry+https://github.com/rust-lang/crates.io-index"
1283−checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
1240+checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606"
12841241dependencies = [
12851242 "tinyvec",
12861243]
@@ -1297,12 +1254,19 @@ version = "0.2.1"
12971254source = "registry+https://github.com/rust-lang/crates.io-index"
12981255checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
12991256
1257+[[package]]
1258+name = "unicode_categories"
1259+version = "0.1.1"
1260+source = "registry+https://github.com/rust-lang/crates.io-index"
1261+checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
1262+
13001263[[package]]
13011264name = "url"
1302−version = "2.1.1"
1265+version = "2.2.0"
13031266source = "registry+https://github.com/rust-lang/crates.io-index"
1304−checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
1267+checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e"
13051268dependencies = [
1269+ "form_urlencoded",
13061270 "idna",
13071271 "matches",
13081272 "percent-encoding",
@@ -1310,9 +1274,9 @@ dependencies = [
13101274
13111275[[package]]
13121276name = "vcpkg"
1313−version = "0.2.10"
1277+version = "0.2.11"
13141278source = "registry+https://github.com/rust-lang/crates.io-index"
1315−checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
1279+checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
13161280
13171281[[package]]
13181282name = "vec_map"
@@ -1400,9 +1364,9 @@ checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a"
14001364
14011365[[package]]
14021366name = "yaml-rust"
1403−version = "0.4.4"
1367+version = "0.4.5"
14041368source = "registry+https://github.com/rust-lang/crates.io-index"
1405−checksum = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d"
1369+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
14061370dependencies = [
14071371 "linked-hash-map",
14081372]
Cargo.toml+1
@@ -51,6 +51,7 @@ serde_yaml = "0.8"
5151semver = "0.11"
5252path_abs = { version = "0.5", default-features = false }
5353clircle = "0.2.0"
54+bugreport = "0.3"
5455
5556[dependencies.git2]
5657version = "0.13"
assets/syntaxes/02_Extra/VimL.sublime-syntaxdeleted−91
@@ -1,91 +0,0 @@
1−%YAML 1.2
2−---
3−# http://www.sublimetext.com/docs/3/syntax.html
4−name: VimL
5−file_extensions:
6− - vim
7− - .vimrc
8−scope: source.viml
9−contexts:
10− main:
11− - include: comment
12− - include: string_quoted_double
13− - include: string_quoted_single
14− - include: string_regex
15− - include: inline_comment
16− - include: number_int
17− - include: number_hex
18− - include: keyword
19− - include: support_function
20− - include: support_variable
21− - include: support_type
22− - include: function_params
23− - include: function_definition
24− - include: function_call
25− - include: function
26− - include: variable
27− - include: expr
28− comment:
29− - match: ^\s*".*$
30− scope: comment.line.quotes.viml
31− captures:
32− 1: punctuation.definition.comment.vim
33− expr:
34− - match: (\|\||&&|==(\?|#)?|(!|>|<)=(#|\?)?|(=|!)~(#|\?)?|(>|<)(#|\?)is|isnot|\.|\*|\\|%)
35− scope: storage.function.viml
36− function:
37− - match: \b(fu(n|nction)?|end(f|fu|fun|function)?)\b
38− scope: storage.function.viml
39− function_call:
40− - match: '(([sgbwtl]|)?:?[0-9a-zA-Z_#]+)(?=\()'
41− scope: support.function.any-method
42− function_definition:
43− - match: '^\s*(function)\s*!?\s+(?=(s:)?[0-9a-zA-Z_#]+\s*\()'
44− captures:
45− 1: storage.function.viml
46− push:
47− - meta_scope: meta.function.viml
48− - match: (\()
49− captures:
50− 1: punctuation.definition.parameters.begin.viml
51− pop: true
52− - match: "(s:)?[0-9a-zA-Z_#]+"
53− scope: entity.name.function.viml
54− function_params:
55− - match: '-\w+='
56− scope: support.type.viml
57− inline_comment:
58− - match: '(?!\$)(")(?!\{).*$\n?'
59− scope: comment.line.quotes.viml
60− captures:
61− 1: punctuation.definition.comment.vim
62− keyword:
63− - match: \b(if|while|for|try|return|throw|end(if|for|while|try)?|au(g|group)|else(if|)?|do|in|catch|finally|:)\b
64− scope: keyword.control.viml
65− number_hex:
66− - match: "0x[0-9a-f]+"
67− scope: constant.numeric.hex
68− number_int:
69− - match: '-?\d+'
70− scope: constant.numeric.integer
71− string_quoted_double:
72− - match: '"(\\\\|\\"|\n[^\S\n]*\\|[^\n"])*"'
73− scope: string.quoted.double.viml
74− string_quoted_single:
75− - match: '''(''''|\n[^\S\n]*\\|[^\n''])*'''
76− scope: string.quoted.single.viml
77− string_regex:
78− - match: '[gvs]{1}/(\\\\|\\/|\n[^\S\n]*\\|[^\n/])*/'
79− scope: string.regexp.viml
80− support_function:
81− - match: \b(set(local|global)?|let|command|filetype|syntax|colorscheme|\w*map|\w*a(b|brev)?|syn|exe(c|cute)?|ec(ho|)?|au(tocmd|)?)\b
82− scope: support.function.viml
83− support_type:
84− - match: <.*?>
85− scope: support.type.viml
86− support_variable:
87− - match: '\b(am(enu|)?|(hl|inc)?search|[Bb]uf([Nn]ew[Ff]ile|[Rr]ead)?|[Ff]ile[Tt]ype)\b'
88− scope: support.variable.viml
89− variable:
90− - match: '([sSgGbBwWlLaAvV]:|@|$|&(?!&))\w*'
91− scope: variable.other.viml
src/bin/bat/clap_app.rs+7
@@ -477,6 +477,13 @@ pub fn build_app(interactive_output: bool) -> ClapApp<'static, 'static> {
477477 .hidden(true)
478478 .help("Show bat's cache directory."),
479479 )
480+ .arg(
481+ Arg::with_name("diagnostic")
482+ .long("diagnostic")
483+ .alias("diagnostics")
484+ .hidden_short_help(true)
485+ .help("Show diagnostic information for bug reports.")
486+ )
480487 .help_message("Print this help message.")
481488 .version_message("Show version information.");
482489
src/bin/bat/main.rs+31−2
@@ -35,8 +35,7 @@ use bat::{
3535 error::*,
3636 input::Input,
3737 style::{StyleComponent, StyleComponents},
38− MappingTarget,
39− PagingMode,
38+ MappingTarget, PagingMode,
4039};
4140
4241const THEME_PREVIEW_DATA: &[u8] = include_bytes!("../../../assets/theme_preview.rs");
@@ -228,6 +227,36 @@ fn run_controller(inputs: Vec<Input>, config: &Config) -> Result<bool> {
228227fn run() -> Result<bool> {
229228 let app = App::new()?;
230229
230+ if app.matches.is_present("diagnostic") {
231+ use bugreport::{bugreport, collector::*, format::Markdown};
232+
233+ bugreport!()
234+ .info(SoftwareVersion::default())
235+ .info(OperatingSystem::default())
236+ .info(CommandLine::default())
237+ .info(EnvironmentVariables::list(&[
238+ "SHELL",
239+ "PAGER",
240+ "BAT_CACHE_PATH",
241+ "BAT_CONFIG_PATH",
242+ "BAT_OPTS",
243+ "BAT_PAGER",
244+ "BAT_STYLE",
245+ "BAT_TABS",
246+ "BAT_THEME",
247+ "XDG_CONFIG_HOME",
248+ "XDG_CACHE_HOME",
249+ "COLORTERM",
250+ "NO_COLOR",
251+ ]))
252+ .info(FileContent::new("Config file", config_file()))
253+ .info(CompileTimeInformation::default())
254+ .info(CommandOutput::new("Less version", "less", &["--version"]))
255+ .print::<Markdown>();
256+
257+ return Ok(true);
258+ }
259+
231260 match app.matches.subcommand() {
232261 ("cache", Some(cache_matches)) => {
233262 // If there is a file named 'cache' in the current working directory,
tests/integration_tests.rs+17
@@ -7,10 +7,16 @@ use std::fs::File;
77use std::path::{Path, PathBuf};
88use std::process::{Command, Stdio};
99use std::str::from_utf8;
10+
11+#[cfg(unix)]
1012use std::time::Duration;
1113
1214const EXAMPLES_DIR: &str = "tests/examples";
15+
16+#[cfg(unix)]
1317const SAFE_CHILD_PROCESS_CREATION_TIME: Duration = Duration::from_millis(100);
18+
19+#[cfg(unix)]
1420const CHILD_WAIT_TIMEOUT: Duration = Duration::from_secs(15);
1521
1622fn bat_raw_command() -> Command {
@@ -669,6 +675,17 @@ fn alias_pager_disable_long_overrides_short() {
669675 .stdout(predicate::eq("pager-output\n").normalize());
670676}
671677
678+#[test]
679+fn pager_failed_to_parse() {
680+ bat()
681+ .env("BAT_PAGER", "mismatched-quotes 'a")
682+ .arg("--paging=always")
683+ .arg("test.txt")
684+ .assert()
685+ .failure()
686+ .stderr(predicate::str::contains("Could not parse pager command"));
687+}
688+
672689#[test]
673690fn config_location_test() {
674691 bat_with_config()