Fabric を使ってみた。
例えば、CUI でコマンド一発でデプロイしたい!とか、
コマンドが長いんで省略したいなーとか、開発していると出てくると思います。
そんなものを解消するソフトとして、 Python には Fabric というものがあります。
詳しくは 公式 のドキュメントや、
Pythonプロフェッショナルプログラミング (ステマ) に記載があるので参照いただけると幸いです。
さて、今回は Django の manage.py の settings 指定が手間だよねってのがあり、
作成しています。
内容は以下です。
# -*- coding: utf-8 -*- from fabric.api import lcd, local import os DEV_SETTINGS = '--settings=%s' % 'app.settings.dev' PROD_SETTINGS = '--settings=%s' % 'app.settings.prod' ROOTPATH = os.path.dirname( os.path.dirname(os.path.abspath(__file__))) PYTHON = os.path.join(ROOTPATH, 'bin', 'python2.7') APPPATH = os.path.join(ROOTPATH, 'app') def runserver(port=8000, prod=False): '''Fire up the Django test server, after cleaning out any .pyc files. Usage: $ fab runserver $ fab runserver:port=8001 ''' settings = PROD_SETTINGS if prod else DEV_SETTINGS with lcd(APPPATH): local("find . -name '*.pyc' -print0|xargs -0 rm", capture=False) local("%s manage.py runserver %s %s" % (PYTHON, port, settings), capture=False) def manage(args='', prod=False): '''Execute manage.py with settings Usage: $ fab manage test ''' settings = PROD_SETTINGS if prod else DEV_SETTINGS with lcd(APPPATH): args = args if args else 'help' local('%s manage.py %s %s' % (PYTHON, args, settings))
実行時は、fabfile.py があるフォルダや、 fabfile といったフォルダを
作成したりしてご利用ください。