Indefero

Indefero Git Source Tree


Root/Makefile

# ***** BEGIN LICENSE BLOCK *****
# This file is part of InDefero, an open source project management application.
# Copyright (C) 2010 Céondo Ltd and contributors.
#
# InDefero is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# InDefero is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#
# ***** END LICENSE BLOCK ***** */
 
#   Installation of external tools : transifex-client
#   sudo apt-get install python-setuptools
#   sudo easy_install -U transifex-client
 
 
 
.PHONY: help
help:
    @printf "Rules for generating distributable files :\n"
    @for b in `git branch | sed "s/^. //g"`; do \
        printf "\t"$$b"-zipfile - Generate a zip archive of the "$$b" branch.\n"; \
    done
    @printf "\nRules for internationalization :\n";
    @printf "\tpot-update - Update the POT file from HTML templates and PHP sources, then merge it with PO file.\n"
    @printf "\tpot-push   - Send the POT file to the transifex server.\n"
    @printf "\tpo-update  - Merge the POT file into the PO file. The POT is not regenerated.\n"
    @printf "\tpo-push    - Send the all PO files to the transifex server.\n"
    @printf "\tpo-pull    - Get all PO files from the transifex server.\n"
    @printf "\tpo-stats   - Show translation statistics of all PO files.\n"
 
#
#   Internationalization rule, POT & PO file manipulation
#
.PHONY: pluf_path
pluf_path:
ifeq (src/IDF/conf/path.php, $(wildcard src/IDF/conf/path.php))
PLUF_PATH=$(shell php -r "require_once('src/IDF/conf/path.php'); echo PLUF_PATH;")
else
    @printf "File 'src/IDF/conf/path.php' don't exist. Please configure it !\n"
    @exit 1
endif
  
.PHONY: pot-update po-update
pot-update: pluf_path
    # Backup pot file
    @if [ -e src/IDF/locale/idf.pot ]; then                     \
    mv -f src/IDF/locale/idf.pot src/IDF/locale/idf.pot.bak;    \
    fi
    touch src/IDF/locale/idf.pot;
    # Extract string
    @cd src; php $(PLUF_PATH)/extracttemplates.php IDF/conf/idf.php IDF/gettexttemplates
    @cd src; for phpfile in `find . -iname "*.php"`; do \
        printf "Parsing file : "$$phpfile"\n"; \
        xgettext -o idf.pot -p ./IDF/locale/ --from-code=UTF-8 -j \
            --keyword --keyword=__ --keyword=_n:1,2 -L PHP $$phpfile ; \
        done
    #   Remove tmp folder
    rm -Rf src/IDF/gettexttemplates
    # Update PO
    @make po-update
 
po-update: pluf_path
    @for pofile in `ls src/IDF/locale/*/idf.po`; do \
        printf "Updating file : "$$pofile"\n"; \
        msgmerge -v -U $$pofile src/IDF/locale/idf.pot; \
        printf "\n"; \
    done
 
#
#   Transifex
#
.PHONY: check-tx-config
check-tx-config:
    @if [ ! -e .tx/config ]; then                                       \
    mkdir -p .tx;                                                       \
    touch .tx/config;                                                   \
    printf "[main]\n" >> .tx/config;                                        \
    printf "host = http://www.transifex.net\n" >> .tx/config;               \
    printf "\n" >> .tx/config;                                              \
    printf "[indefero.idfpot]\n" >> .tx/config;                             \
    printf "file_filter = src/IDF/locale/<lang>/idf.po\n" >> .tx/config;    \
    printf "source_file = src/IDF/locale/idf.pot\n" >> .tx/config;          \
    printf "source_lang = en\n" >> .tx/config;                              \
    fi
    @if [ ! -e $(HOME)/.transifexrc ]; then                 \
    touch $(HOME)/.transifexrc;                                             \
    printf "[http://www.transifex.net]\n" >> $(HOME)/.transifexrc;                      \
    printf "username = \n" >> $(HOME)/.transifexrc;                             \
    printf "token = \n" >> $(HOME)/.transifexrc;                                \
    printf "password = \n" >> $(HOME)/.transifexrc;                             \
    printf "hostname = http://www.transifex.net\n" >> $(HOME)/.transifexrc;                 \
    printf "You must edit the file ~/.transifexrc to setup your transifex account (login & password) !\n";  \
    exit 1;                                                             \
    fi
 
pot-push: check-tx-config
    @tx push -s
 
po-push: check-tx-config
    @tx push -t
 
po-pull: check-tx-config
    # Save PO
    @for pofile in `ls src/IDF/locale/*/idf.po`; do \
        cp $$pofile $$pofile".save"; \
    done
    # Get new one
    @tx pull -a
    # Merge Transifex PO into local PO (so fuzzy entry is correctly saved)
    @for pofile in `ls src/IDF/locale/*/idf.po`; do \
        msgmerge -U $$pofile".save" $$pofile; \
        rm -f $$pofile; \
        mv $$pofile".save" $$pofile; \
    done
 
po-stats:
    @msgfmt --statistics -v src/IDF/locale/idf.pot
    @for pofile in `ls src/IDF/locale/*/idf.po`; do \
        msgfmt --statistics -v $$pofile; \
    done
 
#
#   Generic rule to build a zipfile of indefero for a specified branch
#   ex: make master_zipfile
#       make develop_zipfile
#
%-zipfile:
    @git archive --format=zip --prefix="indefero/" $(@:-zipfile=) \
        > indefero-$(@:-zipfile=)-`git log $(@:-zipfile=) -n 1 \
        --pretty=format:%h`.zip

Archive Download this file

Page rendered in 0.11798s using 11 queries.