Removing Passwords from a Git Repo

When googling how to remove passwords from a git repository, I found this very helpful link.

It was so helpful, I turned it into the following Python script:

import shutil
import subprocess as sp
import sys


def main():

    if len(sys.argv) != 3:
        print("Usage: python3 %s first_word second_word" % sys.argv[0], file=sys.stderr)
        raise SystemExit("Use the correct arguments")
    first_word = sys.argv[1]
    second_word = sys.argv[2]

    if sys.platform == "linux" or sys.platform == "linux2":
        if shutil.which('sed'):
            sed_program = 'sed'
        else:
            raise SystemExit("Install sed")
    elif sys.platform == "darwin":
        if shutil.which('gsed'):
            sed_program = 'gsed'
        else:
            # Note, can change the command and not need gsed
            raise SystemExit("Install gsed.")
    else:
        raise SystemExit("Platform not supported")

    
    
    find_str = r"find . -type f -exec {sed_program} -i -e 's/{first_word}/{second_word}/g' {{}} \;"
    
    find_str = find_str.format(sed_program=sed_program,
                               first_word=first_word,
                               second_word=second_word)
    command = ['git', 'filter-branch', '--tree-filter', find_str]

    response = input("Is '{command}' okay (yes)?".format(command=command))
    if response == 'yes':
        sp.run(command)
    else:
        print("cancelling...")

if __name__ == '__main__':
    main()