Skip to content

Commit 05bd691

Browse files
authored
Add completion for zsh
see #1136
1 parent 55c01d6 commit 05bd691

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

.github/workflows/CICD.yml

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,7 @@ jobs:
269269
shell: bash
270270
run: |
271271
ARCHIVE_DIR='${{ steps.vars.outputs.STAGING }}/${{ steps.vars.outputs.PKG_BASENAME }}/'
272+
COPYRIGHT_YEARS="2018 - "$(date "+%Y")
272273
# Binary
273274
cp 'target/${{ matrix.job.target }}/release/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}' "$ARCHIVE_DIR"
274275
@@ -278,11 +279,12 @@ jobs:
278279
# Man page
279280
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/manual/bat.1 "$ARCHIVE_DIR"
280281
281-
# README and LICENSE files
282-
cp "README.md" "LICENSE-MIT" "LICENSE-APACHE" "$ARCHIVE_DIR"
282+
# README, LICENSE and CHANGELOG files
283+
cp "README.md" "LICENSE-MIT" "LICENSE-APACHE" "CHANGELOG.md" "$ARCHIVE_DIR"
283284
284285
# Autocompletion files
285286
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.fish "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.fish"
287+
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.zsh"
286288
287289
# base compressed package
288290
pushd '${{ steps.vars.outputs.STAGING }}/' >/dev/null
@@ -300,25 +302,41 @@ jobs:
300302
install -Dm755 'target/${{ matrix.job.target }}/release/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}' "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}"
301303
if [ -n "${{ steps.vars.outputs.STRIP }}" ]; then "${{ steps.vars.outputs.STRIP }}" "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}" ; fi
302304
305+
# Work out shared library dependencies
306+
# dpkg-shlibdeps requires debian/control file. Dummy it and clean up
307+
mkdir "./debian"
308+
touch "./debian/control"
309+
case ${{ matrix.job.target }} in
310+
aarch64-*-linux-*) DEPENDS="$(dpkg-shlibdeps -l/usr/aarch64-linux-gnu/lib -O "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}" 2> /dev/null | sed 's/^shlibs:Depends=//')" ;;
311+
arm-*-linux-*hf) DEPENDS="$(dpkg-shlibdeps -l/usr/arm-linux-gnueabihf/lib -O "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}" 2> /dev/null | sed 's/^shlibs:Depends=//')" ;;
312+
i686-*-linux-*) DEPENDS="$(dpkg-shlibdeps -O "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}" 2> /dev/null | sed 's/^shlibs:Depends=//')" ;;
313+
x86_64-*-linux-*) DEPENDS="$(dpkg-shlibdeps -O "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}" 2> /dev/null | sed 's/^shlibs:Depends=//')" ;;
314+
esac;
315+
rm -rf "./debian"
316+
303317
# Man page
304318
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/manual/bat.1 "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
305-
gzip --best "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
319+
gzip -n --best "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
306320
307321
# Autocompletion files
308322
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.fish "${DPKG_DIR}/usr/share/fish/vendor_completions.d/${{ env.PROJECT_NAME }}.fish"
323+
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "${DPKG_DIR}/usr/share/zsh/site-functions/_${{ env.PROJECT_NAME }}"
309324
310325
# README and LICENSE
311-
install -Dm644 "README.md" "${DPKG_DIR}/usr/share/doc/${{ env.PROJECT_NAME }}/README.md"
312-
install -Dm644 "LICENSE-MIT" "${DPKG_DIR}/usr/share/doc/${{ env.PROJECT_NAME }}/LICENSE-MIT"
313-
install -Dm644 "LICENSE-APACHE" "${DPKG_DIR}/usr/share/doc/${{ env.PROJECT_NAME }}/LICENSE-APACHE"
326+
install -Dm644 "README.md" "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/README.md"
327+
install -Dm644 "LICENSE-MIT" "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/LICENSE-MIT"
328+
install -Dm644 "LICENSE-APACHE" "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/LICENSE-APACHE"
329+
install -Dm644 "CHANGELOG.md" "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/changelog"
330+
gzip -n --best "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/changelog"
314331
315-
cat > "${DPKG_DIR}/usr/share/doc/${{ env.PROJECT_NAME }}/copyright" <<EOF
332+
cat > "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/copyright" <<EOF
316333
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
317334
Upstream-Name: ${{ env.PROJECT_NAME }}
318335
Source: ${{ env.PROJECT_HOMEPAGE }}
319336
320337
Files: *
321338
Copyright: ${{ env.PROJECT_MAINTAINER }}
339+
Copyright: $COPYRIGHT_YEARS ${{ env.PROJECT_MAINTAINER }}
322340
License: Apache-2.0 or MIT
323341
324342
License: Apache-2.0
@@ -350,6 +368,7 @@ jobs:
350368
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
351369
DEALINGS IN THE SOFTWARE.
352370
EOF
371+
chmod 644 "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/copyright"
353372
354373
# control file
355374
mkdir -p "${DPKG_DIR}/DEBIAN"
@@ -361,9 +380,10 @@ jobs:
361380
Maintainer: ${{ env.PROJECT_MAINTAINER }}
362381
Homepage: ${{ env.PROJECT_HOMEPAGE }}
363382
Architecture: ${{ steps.vars.outputs.DPKG_ARCH }}
383+
Depends: $DEPENDS
364384
Provides: ${{ env.PROJECT_NAME }}
365385
Conflicts: ${{ steps.vars.outputs.DPKG_CONFLICTS }}
366-
Description: A cat(1) clone with wings.
386+
Description: cat(1) clone with wings.
367387
A cat(1) clone with syntax highlighting and Git integration.
368388
EOF
369389

0 commit comments

Comments
 (0)