From fe1348132ab1a0617fe0dd6b87caab7709891f35 Mon Sep 17 00:00:00 2001 From: James Fantin-Hardesty <24646452+jfantinhardesty@users.noreply.github.com> Date: Tue, 3 Feb 2026 11:38:08 -0700 Subject: [PATCH] Generate completions on install --- .goreleaser.yaml | 25 +++++++++++++++++++++++++ scripts/gen_completions.sh | 25 +++++++++++++++++++++++++ scripts/postinstall.sh | 30 ------------------------------ 3 files changed, 50 insertions(+), 30 deletions(-) create mode 100755 scripts/gen_completions.sh delete mode 100755 scripts/postinstall.sh diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 9a8ccf795..11c0b01ff 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -7,6 +7,7 @@ before: hooks: - go mod tidy - sh ./scripts/gen_manpages.sh + - sh ./scripts/gen_completions.sh - go install github.com/goreleaser/chglog/cmd/chglog@latest - chglog init @@ -313,6 +314,18 @@ nfpms: dst: /usr/share/man/man1/ file_info: mode: 0644 + - src: ./completions/cloudfuse.bash + dst: /usr/share/bash-completion/completions/cloudfuse + file_info: + mode: 0644 + - src: ./completions/_cloudfuse + dst: /usr/share/zsh/site-functions/_cloudfuse + file_info: + mode: 0644 + - src: ./completions/cloudfuse.fish + dst: /usr/share/fish/vendor_completions.d/cloudfuse.fish + file_info: + mode: 0644 overrides: deb: @@ -379,6 +392,18 @@ nfpms: dst: /usr/share/man/man1/ file_info: mode: 0644 + - src: ./completions/cloudfuse.bash + dst: /usr/share/bash-completion/completions/cloudfuse + file_info: + mode: 0644 + - src: ./completions/_cloudfuse + dst: /usr/share/zsh/site-functions/_cloudfuse + file_info: + mode: 0644 + - src: ./completions/cloudfuse.fish + dst: /usr/share/fish/vendor_completions.d/cloudfuse.fish + file_info: + mode: 0644 overrides: deb: diff --git a/scripts/gen_completions.sh b/scripts/gen_completions.sh new file mode 100755 index 000000000..039b8ed3c --- /dev/null +++ b/scripts/gen_completions.sh @@ -0,0 +1,25 @@ +#!/bin/sh +set -e + +# Generate shell completion files for packaging +# These files are created at build time and included in packages + +echo "Generating shell completion files..." + +# Create completions directory if it doesn't exist +rm -rf completions +mkdir -p completions + +# Generate bash completion +echo " - bash completion" +go run . completion bash > completions/cloudfuse.bash + +# Generate zsh completion +echo " - zsh completion" +go run . completion zsh > completions/_cloudfuse + +# Generate fish completion +echo " - fish completion" +go run . completion fish > completions/cloudfuse.fish + +echo "Shell completion files generated in completions/" diff --git a/scripts/postinstall.sh b/scripts/postinstall.sh deleted file mode 100755 index ffa7504e9..000000000 --- a/scripts/postinstall.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -# This script is packaged with the .deb or .rpm package and executed as a post install script. -# It setups up the autocompletion scripts for various shells depending upon it's existence in the system -set -e -# Autocompletions for bash shell -echo "Generating bash autocompletes........." -cloudfuse completion bash >/etc/bash_completion.d/cloudfuse - -for user in $(getent passwd {1000..60000} | cut -d: -f1); do - home=$(eval echo "~${user}") - # Autocompletes for zsh shell - if grep -q "zsh" /etc/shells; then - echo "Found zsh..... Generating autocompletes......" - cloudfuse completion zsh >"${home}"/.oh-my-zsh/custom/plugins/zsh-autosuggestions/_cloudfuse - fi - # Autocompletes for fish shell - if grep -q "fish" /etc/shells; then - echo "Found fish..... Generating autocompletes" - cloudfuse completion fish >"${home}".config/fish/completions/cloudfuse.fish - fi -done - -echo "Finished shell autocompletes!" - -if [ -d "/etc/rsyslog.d/" ] -then - echo "Configuring syslog......." - sudo service rsyslog restart - echo "Finished syslog configuration!" -fi