ajaxからpythonを使ってsvn updateする方法
apacheの文字コードをいじる
叩かれるPythonは以下のファイルです。
#!/usr/local/bin/python # -*- encoding:utf-8 -*- ''' chdirしてsvn updateしてくる ajaxで叩かれる ''' import os import commands import commit_log_viewer as c # このpythonファイルが置いてある場所 WORK_SPACE = '~/workspace' # updateしたいsvnディレクトリ SVN_DIR = '~/sample/svn/' # svnのディレクトリに移動 os.chdir(SVN_DIR) # svn updateする change_encoding = 'export LC_CTYPE=ja_JP.utf8' os.system(change_encoding) svn_update = 'env LANG=ja_JP.UTF-8 svn update' update = commands.getoutput(svn_update) # wordspaceに帰る(wordspaceで何もしないなら必要ない) os.chdir(WORK_SPACE) # 何か処理をする html = """Content-Type: text/html; charset="utf-8" {update} """.format(update=update) print html
ポイントはchange_encodingで、ajaxから叩くと/etc/sysconfig/httpdのHTTPD_LANGの設定によっては
というエラーが出ます。
これを回避するためにLANGの値を一時的に変更して対処します。
また、ajaxから叩くのでhtmlヘッダを出力する必要があります。