import sys, os; k = sys.argv[1][0] #dgpy ver 0.0.1 if k=='u': print ('mv games.utf games.bak') print ('wget http://ii.blcat.ru/s/games.utf') exit() def dl(p,u,f,d): if not os.path.exists('dl/%s' % f): print ('mkdir -p dl && wget -c %s -O dl/%s' % (u,f)) if k=='i': print ('mkdir -p dos/%s' % p) print ('unzip -d dos/%s dl/%s' % (p,f)) db = open('games.utf').read().splitlines() def gv(v): return [n for n in db if n.split(' ')[0] == v] if k=='s': print ('cat << EOFSEARCH') for t in db: t = t.split(' ',3) t = ' '.join((t[0],t[2],t[3])) if any([s.lower() in t.lower() for s in sys.argv[2:]]): print ("%s" % t) print ('EOFSEARCH') else: for t in sys.argv[2:]: if gv(t): dl(*gv(t)[0].split(' ',3))
Для использования требуется скрипт враппер. Сохранить данный python-код, как dg.py, и рядом создать файл dg следующего содержания:
python3 dg.py $* | sh
Где python3 - используемая версия. Умеет следующие команды (все команды распознаются по первой букве, команды d и download равнозначны)
sh dg u : обновить базу данных. её урл жёстко захаркожен во первЫх строках
сейчас там игры с сайта gamesindos.narod.ru, но я добавлю и другие
sh dg s str1 str2 : ищет в базе описания, где есть str1 или str2, например d s keen wolf найдёт все упоминания keen и wolf. Если нужно, наоборот, сужать критерии поиска (когда игр будет много), можно any( в скрипте заменить на all(
sh dg d game1 game2 : скачивает указанные игры (название игры это первый столбец в поиске) в подкаталог dl. Например sh dg d keen1 civ-rus
sh dg i game1 game2 : скачивает (если ещё не загружены) и устанавливает игры в подкаталог dos (этот подкаталог можно сделать симлинком на директорию с играми в dosemu, dosbox или real dos, типа ln -s /mnt/hda2/gamez dos)
Типичное использование:
* Сохранить в отдельную поддиректорию файл dg.py
* echo 'python3 dg.py $* | sh' > dg
* sh dg u
* sh dg i civ-rus bounty pole-sch
(upd: изменена ссылка на games.utf)