bufsize must be an integer error while grepping a message

python, subprocess

Solution

The `subprocess.Popen` class expects an argument list like this:

Popen(args, bufsize=0, ...)

So you're passing it:

- `args` = `git`

- `bufsize` = `log`

Hence the error (`bufsize` expects an integer value). The command vector needs to be a list, like this:

gerritlog = Popen(['git','log','--grep','gerrit_commitmsg'], stdout=PIPE, stderr=PIPE)

Problem

I am running into following error while trying to grep for a message consisting of multipe lines in a log...can anyone provide inputs on how to overcome this error? CODE:- ``` print gerrit_commitmsg gerritlog = Popen('git','log','--grep','gerrit_commitmsg', stdout=PIPE, stderr=PIPE) print gerritlog ``` ERROR:- ``` Commit message:- Build system changes Build system changes to include packages in the build Change-Id: I697558f01ae367d2baacdf2c7fcf1a03753edacd Traceback (most recent call last): File "gerrits_in_workspace.py", line 87, in <module> main() File "gerrits_in_workspace.py", line 77, in main grep_commitmsg(gerrit_commitmsg) File "gerrits_in_workspace.py", line 48, in grep_commitmsg gerritlog = Popen('git','log','--grep','gerrit_commitmsg', stdout=PIPE, stderr=PIPE) File "/usr/lib/python2.7/subprocess.py", line 629, in __init__ raise TypeError("bufsize must be an integer") ```

Original source