#!/bin/bash
-# Tab completion for FlightGear command line options.
+# Tab completion for FlightGear command line options. To use it put
+# this in your ~/.bashrc file:
#
-# 1. define $FG_HOME (or accept the default "$HOME/.fgfs/")
+# export FG_HOME=$HOME/.fgfs/
+# [ -e $FG_HOME/fg-completion.bash ] && source $FG_HOME/fg-completion.bash
#
-# 2. source this file from your ~/.bashrc:
+# Defining FG_HOME is only required if you don't like the default
+# "$HOME/.fgfs/". The script doesn't offer all available airports
+# for the --airport option, but only those listed in a file
+# $FG_HOME/airport.list if available, or a short default list otherwise.
#
-# [ -e $FG_HOME/fg-completion.bash ] && source $FG_HOME/fg-completion.bash
-#
-__fgfs_scriptname="fg-completion.bash" # adapt this if you renamed this script!
+# After installing new aircraft you have to rebuild the aircraft list
+# by typing $ fgfs --aircraft=?<TAB>
__fgfs_root=${FG_ROOT:-/usr/local/share/FlightGear}
__fgfs_home=${FG_HOME:-$HOME/.fgfs}
[ -d "$__fgfs_home" ] || mkdir -p "$__fgfs_home"
+
+__fgfs_ac_list="$__fgfs_home/aircraft.list"
__fgfs_apt_list="$__fgfs_home/airport.list"
__fgfs_options="
shopt -s progcomp
+__fgfs_write_ac_list() {
+ rm -f $__fgfs_ac_list
+ for i in $__fgfs_root/Aircraft/*/*-set.xml; do
+ i=${i%-set.xml}
+ echo ${i##*/} >>$__fgfs_ac_list
+ done
+}
+
+
+[ -e $__fgfs_ac_list ] || __fgfs_write_ac_list
+
+
__fgfs_ai_scenario() {
local i
for i in $__fgfs_root/AI/*.xml; do
__fgfs_aircraft() {
- local i
- for i in $__fgfs_root/Aircraft/*/*-set.xml; do
- i=${i%-set.xml}
- echo ${i##*/}
- done
+ while read i; do
+ echo $i
+ done <$__fgfs_ac_list
}
--ai-scenario=*)
alt=$(__fgfs_offer $(__fgfs_ai_scenario))
;;
+ --aircraft=\?)
+ __fgfs_write_ac_list
+ ;;
--aircraft=*|--vehicle=*)
alt=$(__fgfs_offer $(__fgfs_aircraft))
;;