Category: Без рубрики

  • Makefile

    \"\"

    Example of project Makefile

    makefile
    

     

    Other

    SHELL := /bin/bash
    
    help:
        @$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | awk -v RS= -F: \'/^# File/,/^# Finished Make data base/ {if ($$1 !~ \"^[#.]\") {print $$1}}\' | sort | egrep -v -e \'^[^[:alnum:]]\' -e \'^$@$$\'
    
    install:
        pipenv install
    
    activate:
        pipenv shell
    
    run:
        python manage.py runserver
    
    migration:
        python manage.py makemigrations
    
    migrate:
        python manage.py migrate
    
    superuser:
        python manage.py createsuperuser
    
    heroku:
        git push heroku master
    
    deploy:
        docker-compose build
        docker-compose up -d
    
    down:
        docker-compose down
    

     

    Other2

    .PHONY: all help translate test clean update compass collect rebuild
    
    SETTINGS={{ project_name }}.settings
    TEST_SETTINGS={{ project_name }}.test_settings
    
    # target: all - Default target. Does nothing.
    all:
        @echo \"Hello $(LOGNAME), nothing to do by default\"
        @echo \"Try \'make help\'\"
    
    # target: help - Display callable targets.
    help:
        @egrep \"^# target:\" [Mm]akefile
    
    # target: translate - calls the \"makemessages\" django command
    translate:
        cd {{ project_name }} && django-admin.py makemessages --settings=$(SETTINGS) -i \"site-static/*\" -a --no-location
    
    # target: test - calls the \"test\" django command
    test:
        django-admin.py test --settings=$(TEST_SETTINGS)
    
    # target: clean - remove all \".pyc\" files
    clean:
        django-admin.py clean_pyc --settings=$(SETTINGS)
    
    # target: update - install (and update) pip requirements
    update:
        pip install -U -r requirements.pip
    
    # target: compass - compass compile all scss files
    compass:
        cd {{ project_name }}/compass && compass compile
    
    # target: collect - calls the \"collectstatic\" django command
    collect:
        django-admin.py collectstatic --settings=$(SETTINGS) --noinput
    
    # target: rebuild - clean, update, compass, collect, then rebuild all data
    rebuild: clean update compass collect
        django-admin.py reset_db --settings=$(SETTINGS) --router=default --noinput
        django-admin.py syncdb --settings=$(SETTINGS) --noinput
        django-admin.py migrate --settings=$(SETTINGS)
        #django-admin.py loaddata --settings=$(SETTINGS) <your fixtures here>
    

     

    Other3 (django-makefile)

    SHELL := /bin/sh
    
    # SET THIS! Directory containing wsgi.py
    # PROJECT := someproject
    
    LOCALPATH := ./src
    PYTHONPATH := $(LOCALPATH)/
    SETTINGS := production
    DJANGO_SETTINGS_MODULE = $(PROJECT).settings.$(SETTINGS)
    DJANGO_POSTFIX := --settings=$(DJANGO_SETTINGS_MODULE) --pythonpath=$(PYTHONPATH)
    LOCAL_SETTINGS := local
    DJANGO_LOCAL_SETTINGS_MODULE = $(PROJECT).settings.$(LOCAL_SETTINGS)
    DJANGO_LOCAL_POSTFIX := --settings=$(DJANGO_LOCAL_SETTINGS_MODULE) --pythonpath=$(PYTHONPATH)
    TEST_SETTINGS := test
    DJANGO_TEST_SETTINGS_MODULE = $(PROJECT).settings.$(TEST_SETTINGS)
    DJANGO_POSTFIX := --settings=$(DJANGO_SETTINGS_MODULE) --pythonpath=$(PYTHONPATH)
    DJANGO_TEST_POSTFIX := --settings=$(DJANGO_TEST_SETTINGS_MODULE) --pythonpath=$(PYTHONPATH)
    PYTHON_BIN := $(VIRTUAL_ENV)/bin
    
    .PHONY: clean showenv coverage test bootstrap pip virtualenv sdist virtual_env_set
    
    showenv:
        @echo \'Environment:\'
        @echo \'-----------------------\'
        @$(PYTHON_BIN)/python -c \"import sys; print \'sys.path:\', sys.path\"
        @echo \'PYTHONPATH:\' $(PYTHONPATH)
        @echo \'PROJECT:\' $(PROJECT)
        @echo \'DJANGO_SETTINGS_MODULE:\' $(DJANGO_SETTINGS_MODULE)
        @echo \'DJANGO_LOCAL_SETTINGS_MODULE:\' $(DJANGO_LOCAL_SETTINGS_MODULE)
        @echo \'DJANGO_TEST_SETTINGS_MODULE:\' $(DJANGO_TEST_SETTINGS_MODULE)
    
    showenv.all: showenv showenv.virtualenv showenv.site
    
    showenv.virtualenv: virtual_env_set
        PATH := $(VIRTUAL_ENV)/bin:$(PATH)
        export $(PATH)
        @echo \'VIRTUAL_ENV:\' $(VIRTUAL_ENV)
        @echo \'PATH:\' $(PATH)
    
    showenv.site: site_set
        @echo \'SITE:\' $(SITE)
    
    djangohelp: virtual_env_set
        $(PYTHON_BIN)/django-admin.py help $(DJANGO_POSTFIX)
    
    collectstatic: virtual_env_set
        -mkdir -p .$(LOCALPATH)/static
        $(PYTHON_BIN)/django-admin.py collectstatic -c --noinput $(DJANGO_POSTFIX)
    
    runserver: virtual_env_set
        $(PYTHON_BIN)/django-admin.py runserver $(DJANGO_POSTFIX)
    
    syncdb: virtual_env_set
        $(PYTHON_BIN)/django-admin.py syncdb $(DJANGO_POSTFIX)
    
    cmd: virtual_env_set
        $(PYTHON_BIN)/django-admin.py $(CMD) $(DJANGO_POSTFIX)
    
    localcmd: virtual_env_set
        $(PYTHON_BIN)/django-admin.py $(CMD) $(DJANGO_LOCAL_POSTFIX)
    
    refresh:
        touch src/$(PROJECT)/*wsgi.py
    
    rsync:
        rsync -avz --checksum --exclude-from .gitignore --exclude-from .rsyncignore . ${REMOTE_URI}
    
    compare:
        rsync -avz --checksum --dry-run --exclude-from .gitignore --exclude-from .rsyncignore . ${REMOTE_URI}
    
    clean:
        find . -name \"*.pyc\" -print0 | xargs -0 rm -rf
        -rm -rf htmlcov
        -rm -rf .coverage
        -rm -rf build
        -rm -rf dist
        -rm -rf src/*.egg-info
    
    test: clean virtual_env_set
        -$(PYTHON_BIN)/coverage run $(PYTHON_BIN)/django-admin.py test $(APP) $(DJANGO_TEST_POSTFIX)
    
    coverage: virtual_env_set
        $(PYTHON_BIN)/coverage html --include=\"$(LOCALPATH)/*\" --omit=\"*/admin.py,*/test*\"
    
    predeploy: test
    
    register: virtual_env_set
        python setup.py register
    
    sdist: virtual_env_set
        python setup.py sdist
    
    upload: sdist virtual_env_set
        python setup.py upload
        make clean
    
    bootstrap: virtualenv pip virtual_env_set
    
    pip: requirements/$(SETTINGS).txt virtual_env_set
        pip install -r requirements/$(SETTINGS).txt
    
    virtualenv:
        virtualenv --no-site-packages $(VIRTUAL_ENV)
        echo $(VIRTUAL_ENV)
    
    all: collectstatic refresh