...
|
...
|
@@ -198,6 +198,51 @@ function fgfs () {
|
198
|
198
|
$FGDIR/install/flightgear/bin/fgfs $fgfs_arg ${complement[$fgfs_arg]} 2>/dev/null | pager
|
199
|
199
|
return
|
200
|
200
|
;;
|
|
201
|
+ --search)
|
|
202
|
+ command -v sqlite3 > /dev/null || return
|
|
203
|
+ sqlite3 $FGADDON/fgaddon.db <<< "select file from setxml where file like '%$2%'"
|
|
204
|
+ return
|
|
205
|
+ ;;
|
|
206
|
+ --mp-list)
|
|
207
|
+ local mplist=$(mktemp --dry-run /dev/shm/XXXXXXXXX)
|
|
208
|
+ declare -A installed_model fgaddon_model unknown_model
|
|
209
|
+ local ac_name=
|
|
210
|
+ telnet mpserver01.flightgear.org 5001 2>/dev/null > $mplist
|
|
211
|
+ for model in $(awk '/@/{a[$NF]++}END{for (i in a) print i}' $mplist); do
|
|
212
|
+ if test -r $FGADDON/$model \
|
|
213
|
+ -o -r $FGDIR/source/fgdata/$model \
|
|
214
|
+ -o -r $FGDIR/source/fgdata/AI/$model; then
|
|
215
|
+ installed_model[${${(s:/:)model}[2]}]=1
|
|
216
|
+ else
|
|
217
|
+ ac_name=$(sqlite3 $FGADDON/fgaddon.db <<< 'select printf("%s/%s", aircrafts.name, setxml.file)
|
|
218
|
+ from aircrafts
|
|
219
|
+ inner join setxml
|
|
220
|
+ where aircrafts.id = setxml.variantof
|
|
221
|
+ and setxml.`/sim/model/path` = "'$model'"
|
|
222
|
+ limit 1')
|
|
223
|
+ if test -n "$ac_name"; then
|
|
224
|
+ fgaddon_model[${ac_name}]=1
|
|
225
|
+ else
|
|
226
|
+ unknown_model[${model}]=1
|
|
227
|
+ fi
|
|
228
|
+ fi
|
|
229
|
+ done
|
|
230
|
+ if test ${#installed_model[@]} -gt 0; then
|
|
231
|
+ echo "${(j:\n:)${(k)installed_model[@]}}" > $mplist
|
|
232
|
+ echo -e "Installed:\n$(column -c$(tput cols) $mplist)\n"
|
|
233
|
+ fi
|
|
234
|
+ if test ${#fgaddon_model[@]} -gt 0; then
|
|
235
|
+ echo "${(j:\n:)${(k)fgaddon_model[@]}}" > $mplist
|
|
236
|
+ echo -e "Available in FGADDON:\n$(column -c$(tput cols) $mplist)\n"
|
|
237
|
+ fi
|
|
238
|
+ if test ${#unknown_model[@]} -gt 0; then
|
|
239
|
+ echo "${(j:\n:)${(k)unknown_model[@]}}" > $mplist
|
|
240
|
+ echo -e "unknown models:\n$(column -c$(tput cols) $mplist)"
|
|
241
|
+ fi
|
|
242
|
+ unset installed_model unknown_model fgaddon_model
|
|
243
|
+ rm $mplist
|
|
244
|
+ return
|
|
245
|
+ ;;
|
201
|
246
|
*)
|
202
|
247
|
fgfs_args+=($fgfs_arg);;
|
203
|
248
|
esac
|