Захотілося мені, щоб на сайті відображалався номер ревізії меркуріала, на основі якої зроблений deploy(перенесення скриптів на сервер).
Спочатку думав навісити хук до меркуріала, але вирішив піти легшим шляхом, як завжди. ;))). І переписав мій скрипт для деплою.
Отож раніше мій скрипт(deploy.bat) для деплою був наступний:
rmdir /S /Q temp
mkdir temp
cd temp
hg clone d:\avcheck
... тут викликаються ще декілька пітоновський скриптів
... результат закидається на сервер
Тож щоб дістати номер ревізії додав такі рядки:
cd ..
hg log --limit 1 > ./deploy/temp/rev.txt
cd deploy
які дістають опис останньої ревізії і зберігають його в файл deploy/temp/rev.txt
Далі в deploy.bat додав, щоб в кінці запускався пітоновський скрипт, що парсить файл rev.txt, дістає номер ревізії і зберігає його в Джанговський конфіг:
import re
with open('./temp/rev.txt', 'r') as fr:
rev = fr.readline().split(':')[1].strip()
if int(rev) < 0:
print "error rev"
exit
with open('./temp/avcheck/avcheck/settings.py', 'r+') as fs:
file_origin = fs.read()
fs.seek(0)
fs.write(file_origin)
file_new = re.sub("REVISION_NUMBER = \d*", "REVISION_NUMBER = "+rev, file_origin)
fs.write(file_new)
Тепер в мене завжди на сайті показується внизу номер ревізії ;)
