Игорь Пашев - Makefile для DokuWiki

Nov. 5th, 2010

08:19 pm - Makefile для DokuWiki

Previous Entry Add to Memories Tell A Friend Next Entry

Дано:
Доступ к файлам DokuWiki по FTP.

Задачи:
1. Делать резервные копии (скачивать по FTP).
2. Обновлять DokuWiki (закачивать по FTP).
3. Тренироваться на localhost.

Примеры:
make backup — сделать резервную копию conf и data.
make upgrade — закачать изменённые локальные файлы (кроме conf и data).
make devel — обновить локальную копию.

FTPHOST = ftp.pomorsu.ru
FTPDIR  = tphyslab/doku
DESTDIR = /var/www/htdocs/dokuwiki
CWD     = $(shell pwd)
MKDIR   = mkdir -p

DW_DATA = vqerwev345ec
LO_DATA = data_$(DW_DATA)

DW_CONF = srvw533bvf
LO_CONF = conf_$(DW_CONF)

LO_BACKUP = backup

LFTP    = lftp
RSYNC   = rsync -a --progress --delete --force


backup: backup-conf backup-data

backup-conf:
    $(MKDIR) $(LO_CONF)
    $(LFTP) -e \
        "mirror -c -e -v \
        $(FTPDIR)/$(DW_CONF) $(CWD)/$(LO_CONF); \
        exit" $(FTPHOST)
    $(CWD)/bin/backup $(LO_CONF)

backup-data:
    $(MKDIR) $(LO_DATA)
    $(LFTP) -e \
        "mirror -c -e -v \
        -X cache/* \
        $(FTPDIR)/$(DW_DATA) $(CWD)/$(LO_DATA); \
        exit" $(FTPHOST)
    $(CWD)/bin/backup $(LO_DATA)

upgrade: backup
    $(LFTP) -e \
        "mirror -c -e -v -R \
        -X $(LO_CONF)/ \
        -X $(LO_DATA)/ \
        -X $(DW_CONF)/ \
        -X $(DW_DATA)/ \
        -X *.tar.* \
        -X $(LO_BACKUP)/ \
        -X *~ \
        -X .*.swp \
        -X .git/* \
        -X .gitignore \
        -X .directory \
        $(CWD) $(FTPDIR); \
        exit" $(FTPHOST)

perm:
    $(LFTP) -e " \
        chmod -R -f a+rwX $(FTPDIR)/$(DW_DATA); \
        chmod -R a+rX  $(FTPDIR)/$(DW_CONF); \
        chmod    a+w   $(FTPDIR)/$(DW_CONF); \
        chmod    a+w   $(FTPDIR)/$(DW_CONF)/local.php \
                       $(FTPDIR)/$(DW_CONF)/users.auth.php \
                       $(FTPDIR)/$(DW_CONF)/acl.auth.php; \
        ; \
        exit" $(FTPHOST)

login:
    $(LFTP) $(FTPHOST)

devel:
    $(RSYNC) \
        --exclude $(LO_CONF)/ \
        --exclude $(LO_DATA)/ \
        --exclude $(DW_CONF)/ \
        --exclude $(DW_DATA)/ \
        --exclude *.tar.* \
        --exclude $(LO_BACKUP)/ \
        --exclude *~ \
        --exclude .*.swp \
        --exclude .git/* \
        --exclude .gitignore \
        --exclude .directory \
        $(CWD)/ $(DESTDIR)/
    if [ ! -d $(DESTDIR)/$(DW_DATA) ]; then \
        cp -r $(LO_DATA) $(DESTDIR)/$(DW_DATA); \
        chmod -R a+rwX $(DESTDIR)/$(DW_DATA); fi
    if [ ! -d $(DESTDIR)/$(DW_CONF) ]; then \
        cp -r $(LO_CONF) $(DESTDIR)/$(DW_CONF); \
        chmod -R a+rwX $(DESTDIR)/$(DW_CONF); fi

.PHONY: upgrade backup backup-conf backup-data perm login devel

Tags: , , , ,
(Оставить комментарий)