Skip to content

Instantly share code, notes, and snippets.

@consolewitch
Last active June 7, 2018 00:54
Show Gist options
  • Save consolewitch/13b0de8b22959c539c3039dac3530854 to your computer and use it in GitHub Desktop.
Save consolewitch/13b0de8b22959c539c3039dac3530854 to your computer and use it in GitHub Desktop.
In a shell / ansible / packer stack find and replace var names.
import re
import fileinput
import sys
old_caps_underscored_var=sys.argv[1]
old_lower_underscored_var=old_caps_underscored_var.lower()
old_lower_dashed_var=old_lower_underscored_var.replace("_","-")
new_caps_underscored_var=sys.argv[2]
new_lower_underscored_var=new_caps_underscored_var.lower()
new_lower_dashed_var=new_lower_underscored_var.replace("_","-")
filename=sys.argv[3]
def convert (old_var,new_var,line):
regex = r'(?<![a-zA-Z]-)\b' + old_var + r'\b(?!-[a-zA-Z])'
return re.sub(regex,new_var,line.rstrip('\n'))
with fileinput.input(filename, inplace=True, backup='.bak') as file:
for line in file:
line=convert(old_caps_underscored_var,new_caps_underscored_var,line)
line=convert(old_lower_underscored_var,new_lower_underscored_var,line)
line=convert(old_lower_dashed_var,new_lower_dashed_var,line)
print(line)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment