首页 > 解决方案 > 我的预提交文件有问题

问题描述

这是我的预提交文件(放在 .git/hooks 中)

from __future__ import absolute_import
from __future__ import print_function
from __future__ import unicode_literals

import argparse
import io
import sys


def replace_strings(filename):
    f = open(filename, 'r')
    configtext  = f.read()
    passwordpos = configtext.find("password");
    newlinepos  = configtext.find("\n", passwordpos)
    passwordold = configtext[passwordpos+10:newlinepos-2]
    passwordnew = "test0000"
    f.close()
    f = open('config.php', 'w')
    #print(passwordpos)
    #print(passwordold)
    #print(configtext)
    configtext = configtext.replace(passwordold, passwordnew)
    #print(configtext)
    f.write(configtext)
    return 1

def main(argv=None):
    parser = argparse.ArgumentParser()
    parser.add_argument('filenames', nargs='*', help='Filenames to fix')
    args = parser.parse_args(argv)

    retv = 0

    for filename in args.filenames:
        if (filename=='config.php'):
            return_value = replace_strings(filename)
            if return_value != 0:
                print('Fixing strings in {}'.format(filename))
            retv |= return_value

    return retv

不知何故,它不起作用。我已经在单独的 .py 文件中检查了 def replace_strings 的内容,它工作得很好(而不是我使用“config.php”字符串的参数文件名)。有什么帮助吗?

标签: pythongitpython-2.7githooks

解决方案


#!/usr/bin/env python应该是第一行以防 Python 挂钩。


推荐阅读