You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

git-commit-at.py 906B

1234567891011121314151617181920212223242526272829
  1. #!/usr/bin/env python3
  2. import argparse
  3. import datetime
  4. import subprocess
  5. def main():
  6. parser = argparse.ArgumentParser(description="Perform a git commit at a different time")
  7. parser.add_argument("--minus", type=int, default=0, help="Hours to subtract")
  8. parser.add_argument("--plus", type=int, default=0, help="Hours to add")
  9. parser.add_argument("message", type=str, help="The commit message")
  10. args = parser.parse_args()
  11. minus = datetime.timedelta(hours=args.minus)
  12. plus = datetime.timedelta(hours=args.plus)
  13. date = datetime.datetime.now().astimezone() - minus + plus
  14. formatted_date = date.strftime("%a %b %d %Y %H:%M:%S %z")
  15. env = {
  16. "GIT_AUTHOR_DATE": formatted_date,
  17. "GIT_COMMITTER_DATE": formatted_date
  18. }
  19. subprocess.call(["git", "commit", "-m", args.message, "--date", formatted_date], env=env)
  20. if __name__ == "__main__":
  21. main()