LIB_DIR=${DESTDIR}/usr/share/${PACKAGE}
DOCDIR=${DESTDIR}/usr/share/doc/${PACKAGE}
+BASHCOMPLDIR=${DESTDIR}/usr/share/bash-completion/completions/
all: ${DEB}
install -D -m 0644 PVE/APIClient/Commands/lxc.pm ${LIB_DIR}/PVE/APIClient/Commands/lxc.pm
install -D -m 0644 pve-api-definition.js ${LIB_DIR}/pve-api-definition.js
install -D -m 0755 pveclient ${DESTDIR}/usr/bin/pveclient
+ install -D -m 0644 pveclient.bash-completion ${BASHCOMPLDIR}/pveclient.bash-completion
+
pve-api-definition.js:
./extractapi.pl > pve-api-definition.js.tmp
/usr/share
-/usr/bin
\ No newline at end of file
+/usr/bin
+/usr/share/bash-completion/completions
PVE::APIClient::Commands::lxc->run_cli_handler();
} elsif ($cmd eq 'remote') {
PVE::APIClient::Commands::remote->run_cli_handler();
+} elsif ($cmd eq 'bashcomplete') {
+
+ my $cmdline = substr($ENV{COMP_LINE}, 0, $ENV{COMP_POINT});
+ $cmdline =~ s/$cur$//;
+
+ my ($bash_command, $cur, $prev) = @ARGV;
+
+ my $args = [split(/\s+/, $cmdline)];
+
+ if (scalar(@$args) == 1) {
+ foreach my $p (qw(get set create delete lxc remote)) {
+ print "$p\n" if $p =~ m/^$cur/;
+ }
+ }
+
} else {
print_usage();
}
--- /dev/null
+# pveclient bash completion
+
+# see http://tiswww.case.edu/php/chet/bash/FAQ
+# and __ltrim_colon_completions() in /usr/share/bash-completion/bash_completion
+# this modifies global var, but I found no better way
+COMP_WORDBREAKS=${COMP_WORDBREAKS//:}
+
+complete -C 'pveclient bashcomplete' pveclient