We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
to your account
I noticed that if I run append() several times with the same content it also appends that line several times, instead of just one time. That is, append() is not idempotent.
If text is already found in filename, the append is not run, and None is returned immediately.
The following small test script can reproduce the issue:
from fabric.contrib.files import append
append('testfile', 'some < pipe')
This issue seems to be similar to #341
The error has to do with the '<' symbol.
The problem seems to boil down to the regex that is sent to egrep in contains():
printing egrep_cmd gives me the following for the above testcase:
egrep "^some\ \<\ pipe$" "$(echo testfile)"
However the correct regex would be:
egrep "^some\ <\ pipe$" "$(echo testfile)"
The incorrect regex seems to be generated by the _escape_for_regex function.
The text was updated successfully, but these errors were encountered:
Fix for fabric#1294
+1, still encountering this bug in 1.12, our poor servers are restoring their iptables rules way too many times x)
Sorry, something went wrong.
I believe I've encountered the same one, with > this time.
This adds multiple lines:
append('/etc/rc.local', 'echo never > /sys/kernel/mm/transparent_hugepage/enabled')
I have provided the fix in the initial description, you can probably create a patch from that and submit it. I'm no longer using fabric so will likely not fix this myself :(
Fixed in #1559!
No branches or pull requests