#!/bin/bash

### which versions exists?
versions=( $(ls -1 /etc/alternatives/packages.d/asterisk-* 2>/dev/null \
	| sed -e 's!.*/!!' -e 's!asterisk-!!' \
	| sort -rn ) )

if [ "$1" = "-l" ]; then
	echo ${versions[*]}
	exit $?
fi

if [ "$1" = "display" ]; then
	alternatives-list /usr/sbin/asterisk
	exit $?
fi

if [ "$1" = "auto" ]; then
	alternatives-update /usr/sbin/asterisk
	exit $?
fi

if [ ! -z "$1" ]; then
	### set version that user wants
	alternatives-manual /usr/sbin/asterisk "/usr/sbin/asterisk-$1"
	exit $?
fi

count=${#versions[@]}

T1=`mktemp`
T2=`mktemp`
for s in ${versions[@]}; do
	echo "$s" >> $T1
	echo "$s" >> $T1
done

### параметров нет -- значит вызываем dialog
dialog --menu "Select Asterisk version" -1 -1 $count \
	--file "$T1" 2>"$T2"

ver=`cat "$T2"`
rm -f "$T1" "$T2"

if [ ! -z "$ver" ]; then
	alternatives-manual /usr/sbin/asterisk "/usr/sbin/asterisk-$ver"
	alternatives-update
	exit $?
fi
