From 24282ce623c8fa2994cc51723f96adc9d64e4b67 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 31 Jul 2026 09:04:08 +0200 Subject: feat: add bash completion Completes the flags, and directories for --archive-dir in both the --opt value and --opt=value forms. --target offers only "me": real chat handles would need a network round-trip inside a tab press, and --list-chats already answers that question. Installed by hand, nothing automates it. A new flag has to be added to opts in the completion as well. Co-Authored-By: Claude Opus 5 --- tg_backup.bash-completion | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tg_backup.bash-completion (limited to 'tg_backup.bash-completion') diff --git a/tg_backup.bash-completion b/tg_backup.bash-completion new file mode 100644 index 0000000..5aca64f --- /dev/null +++ b/tg_backup.bash-completion @@ -0,0 +1,39 @@ +# bash completion for tg_backup.py +# +# Copyright (C) 2026 Danilo M. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. + +_tg_backup() { + local cur prev opts + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + opts="--target --archive-dir --list-chats --force-target --self-check --help" + + # --archive-dir takes a directory. Handles both "--archive-dir " and + # the --opt=value form, where bash leaves the = in prev. + case $prev in + --archive-dir) + _filedir -d + return + ;; + esac + if [[ $cur == --archive-dir=* ]]; then + cur=${cur#--archive-dir=} + _filedir -d + return + fi + + # --target is a chat: no local source of completions without hitting the + # network, so offer only the one value that is not chat-specific. + if [[ $prev == --target || $cur == --target=* ]]; then + [[ $cur == --target=* ]] && cur=${cur#--target=} + COMPREPLY=($(compgen -W "me" -- "$cur")) + return + fi + + COMPREPLY=($(compgen -W "$opts" -- "$cur")) +} +complete -F _tg_backup tg_backup.py tg_backup -- cgit v1.2.3