Developer-Environment

From GZProject Wiki

Jump to: navigation, search

Contents

Рабочая копия

Структура каталогов

Рекомендованая структура каталогов и скриптов для локальной машины.

Основной проект:

My Documents\gzproject.ru
           .\trunk           - https://gzproject.svn.sourceforge.net/svnroot/gzproject/trunk/
           .\projects        - проекты с открытым исходным кодом, с информацией о клиенте и протоколе.
           .\mysql           - backup для базы данных
           .\macros          - Файлы GZone приложения
           .\links           - Быстрые ссылки на файлы проектов и интернета.
           .\gzproject       - svn репозитарий полная копия sf.net репозитария.
           .\htdocs          - svn репозиторий, копия trunk/site/www, с конфигурациоными файлами sourceforge.net
           .\sitemap_gen-1.4 - http://sourceforge.net/projects/goog-sitemapgen

Backup

Создание резервных копий на локальной машине. SF.net публичный, ненадежный хостинг , о чем они говорят в документации ;)

MysqlDB Backup

Сохранение базы данных на диск. В скрипте необходимо указать корректный пароль. Так же не получилось использовать сжатие, видимо проблема в .bat файлах. Строка возвращет битый архив:

ssh -C axet@shell.sf.net "mysqldump g148659_mediawiki | gzip" > mediawiki.sql.gz

Рабочий пример:

ssh -C axet@shell.sf.net "mysqldump --user=g148659admin --password=PASSWORD --host=mysql4-g g148659_mediawiki" > mediawiki.sql.gz
ssh -C axet@shell.sf.net "mysqldump --user=g148659admin --password=PASSWORD --host=mysql4-g g148659_blog" > blog.sql.gz
ssh -C axet@shell.sf.net "mysqldump --user=g148659admin --password=PASSWORD --host=mysql4-g g148659_punbb" > punbb.sql.gz

SVN repo Backup

Сохранение репозитория на локальный жесткий диск.

set RSYNC_PROXY=rsync-svn.sourceforge.net:80
rsync -avrz --delete rsync-svn-g::svn/gzproject/* gzproject/

Script

Система скриптов проекта. Написаны с использованием python.

toutf8.py

Перевод проекта на универсальную кодировку. Для работы используется скрипт проверяющий соответствие файла на кодировку UTF-8, если таковая не найдена производится преобразование файла в указанную кодировку из CP1251. Работая под MSDEV8, затруднительно гарантировать, что все файлы в проекте, которые будут созданы, находятся в универсальной кодировке. Из за такой оплошности необходимо использовать дополнительную программу. toutf8.bat

trunk\misc\toutf8.py trunk\library trunk\GZ

htdocs folder

Публикование сайта и сгенерированных doxygen документов.

rsync -avz --delete trunk/site/www/doxygen/html/* htdocs/doxygen/html/
rsync -avz --delete -C --delete-excluded --rsh=ssh htdocs/* axet@shell.sf.net:/home/groups/g/gz/gzproject/htdocs/

siteupdate.py

if __name__ == '__main__':
  import sys
  import xml.sax

  sys.path.insert(0,"trunk/site")
  sys.path.insert(0,"sitemap_gen-1.4")
  import sitefixed
  import sitemap_gen

  rel=open('trunk/site/relativefiles.txt');
  cfg=sitefixed.make("htdocs",rel.readlines(),"http://gzproject.ru","htdocs/sitemap.xml.gz")

  sitemap = sitemap_gen.Sitemap(None)
  xml.sax.parseString(cfg, sitemap)
  sitemap.Generate()
  print ('Number of errors: %d' % sitemap_gen.output.num_errors)
  print ('Number of warnings: %d' % sitemap_gen.output.num_warns)