Показаны сообщения с ярлыком projects. Показать все сообщения
Показаны сообщения с ярлыком projects. Показать все сообщения

воскресенье, Февраль 04, 2007

pygm

Наконец то нашел время и исправил громадную багу в pygm. Была довольно серъезно переписана функция очистки БД, что вроде бы, поправило все известные мне баги.

среда, Ноябрь 29, 2006

Простенькие скрипты для шейпинга (pptpd, tc)

Некоторое время назад понадобилось наваять что-нибудь, что бы некоторым пользователям, коннектищимся к VPN-серваку (pptpd) шейпилась скорость.
Решено было так:
шейпить с помощью tc (iproute2)
заюзать стандартный pppd'шный ip-up
в качестве DB заюзать несколько DB berkeleydb (хотелось попрактиковаться просто)
ну и написана основная часть на python

написано все за час, очень кривой код, но работает... может кому понадобиться... выложил сюда, т.к. на Google Code стыдно такое выкладывать %)

среда, Ноябрь 01, 2006

Новый Gentoo Mirror Script

Давно собирался (уже как год... но решился тока сегодня вечером :D ) усовершенствовать скрипт для distfiles mirror так, что бы он зафетченное заного фетчить не пытался (точнее не считал md5 суммы - долго это, да и винт жалко).
Собственно вот пре-пре-альфа решения этой задачи:
http://62.140.240.206/~v12aml/projects/pgm.py
Кратко:
ведутся записи в БД (Berkeley DB) о том что уже зафетчено (просто тупо exit codes складываются в БД), и фетчется только то, что было зафетчено неудачно или не было зафетчено вообще :)

Просьба: не ругать (скрипт был написан крайне бегло), все страшно, кошмарно, не красиво, не оптимально... но работает :)) это творение моего воспаленного разума планируется привести в божеский вид, так что любые замечания, поправки, идеи и патчи принимаются :)

вторник, Август 22, 2006

GFEs

Обновил версию, правда,не могу выложиьт на Google Code :-\
Выкладываю сюда:

#!/bin/bash
#fetch_ebuilds.sh
#GFEs (Gentoo Fetch Ebuilds script)
#License: GPL
#Writed by v12aml ( v12aml@gmail.com )
VERSION="0.4.8"

THREADS=2
TF=/tmp/fetch_ebuilds
PARENTPID=$$

source /etc/make.conf

rm $TF.*.status 2> /dev/null
rm $TF.*.thread.init
touch $TF.$PARENTPID.status
touch $TF.$PARENTPID.thread.init

do_lock()
{
if [ -f $TF.kill ]
then
logger "download_portage_group.sh: exit by lock_file.kill"
echo "exit by lock_file.kill"
sleep 2
rm $TF.kill
exit 0
elif [ -f $TF.pause ]
then
echo -e "\n\nPAUSED\n\n"
while [ -f $TF.pause ]
do
sleep 60
done
fi
}
do_lock_thread()
{
echo "We have `ls $TF.$PARENTPID.thread.* | wc -w` threads" >> $TF.$PARENTPID.status
while [ `ls $TF.$PARENTPID.thread.* | wc -w` -gt $THREADS ]
do
echo "Do lock thread" >> $TF.$PARENTPID.status
sleep 2
done
}

do_thread()
{
export EtF=$1 TF PARENTPID
bash -c ' touch $TF.$PARENTPID.thread.$$ && echo "Thread $$ started ( $EtF )" >> $TF.$PARENTPID.status && ebuild $EtF fetch > /dev/null 2> /dev/null; echo "Thread $$ finished ( $EtF )" >> $TF.$PARENTPID.status && rm $TF.$PARENTPID.thread.$$'
}


LIST1=`find ${PORTDIR-/usr/portage} -type f -name '*.ebuild'`
LIST2=`find ${PORTDIR_OVERLAY-/usr/local/portage} -type f -name '*.ebuild'`
LIST=`echo $LIST1 $LIST2 | sort`
N=`echo $LIST | wc -w`
COUNT=1
echo "$N to go" >> $TF.$PARENTPID.status

for loop in $LIST
do
do_lock
do_lock_thread
do_thread $loop &
#sleep 1
done

#EOF

понедельник, Август 21, 2006

GFEs

gfes - скрипт, который помогает мне делать Gentoo distfiles mirror. Приемущества, по сравнению с просто зеркалирыванием FTP - качает то, чего нет на зеркалах, но не залочено для скачивания (например бинарники игр, там урл просто ведет на сайт разработчика).


Скрипт сделан давно, просто я его выложил на Google Code. Заодно решил сделать ему некоторое подобие многопоточности.


Ну и протестить Google Code (Project Hosting) ;)

среда, Май 31, 2006

sspy

Я, таки, дописал скрипт для отправки SMS с помощью телефона, подключенного через USB-кабель :) Долго я мучился, но я сделал это! :D