#!/bin/sh
export LC_ALL=ru_RU.UTF8
IN="/usr/share/doc/tatham-puzzles-20180227/index.html"
GBD="/usr/games"

RList="$(sed -n '/<span class="puzzle">/s|.*<th align="center">\([^<]*\).*href="\(doc[^"]*\).*<td align="center">\(.*\)</td>.*|\1\n\2\n\3\n|p' "$IN")"

List="$(
echo "$RList" | awk 'BEGIN { RS = "" ; FS = "\n" }
{ Comment=""; for(i=3; i<=NF; i++) Comment=Comment " " $i
  printf("\"%s\" \"%s\n%s\" 0 ",gensub(/.*\/(.*)[.]html.*/,"\\1","",$2),$1,Comment) }'
)"

#echo "$List"
N=`echo "$List" | fgrep ' 0 ' | wc -l`
case "$1" in
  list) echo "$RList" | awk 'BEGIN { RS = "" ; FS = "\n" } {print " " $1 }' | tr '\n' ','; echo;;
  desktop)
  	echo "$RList" | awk 'BEGIN { RS = "" ; FS = "\n" }
	{ Name=$1; Exec=$2; sub(/.*#/,"",Exec);
	  Comment=""; for(i=3; i<=NF; i++) Comment=Comment " " $i;
	  print "[Desktop Entry]"		> Exec ".desktop"
	  print "Type=Application"		> Exec ".desktop"
	  print "Name=" Name			> Exec ".desktop"
	  print "Comment=" Comment		> Exec ".desktop"
	  print "Icon=" Exec			> Exec ".desktop"
	  print "Exec=" Exec			> Exec ".desktop"
	  print "Categories=Game;LogicGame;"	> Exec ".desktop"
	  print "Terminal=false"		> Exec ".desktop"
	}'
	;;
  *)
  	G=`eval Xdialog --stdout --radiolist "'Simon Tatham Portable Puzzle Collection'" -1 100 0 "$List"`
	test -z "$G" || E=`"$GBD/$G" 2>&1` || Xdialog --msgbox "Error $?: $E" 0 0
	;;
esac
