From 5e105988a9eff0a6b474d26a1e0fdcfaf1038aea Mon Sep 17 00:00:00 2001 From: jonnybravo Date: Thu, 13 Apr 2023 21:18:43 +0200 Subject: [PATCH] commit message from python script --- check_and_add_pull_git/main.py | 71 +++++++++++-------------- check_and_add_pull_git/pull_and_push.py | 44 +++++++++++++++ 2 files changed, 74 insertions(+), 41 deletions(-) create mode 100644 check_and_add_pull_git/pull_and_push.py diff --git a/check_and_add_pull_git/main.py b/check_and_add_pull_git/main.py index 8d4fa26..a365beb 100644 --- a/check_and_add_pull_git/main.py +++ b/check_and_add_pull_git/main.py @@ -1,44 +1,33 @@ #!/usr/bin/env python3 -import os, git -class my_git(): - def __init__(self, check_folder = str) -> None: - self.check_folders = check_folder - def check_folder(self): - li_all_fo_git = [] - for root, dirs, files in os.walk(self.check_folders, topdown=False): - for name in dirs: - FullPATH = str(os.path.join(root, name)) - if name == ".git": - li_all_fo_git.append(root) - return li_all_fo_git - - def git_pull(self, git_folder): - repo = git.Repo(git_folder) - for remote in repo.remotes: - remote_name = repo.remote(name=remote.name) - remote_name.pull() - - def git_push(self, git_folder): - repo = git.Repo(git_folder) - if not repo.is_dirty(untracked_files=True): - print('No Changes detected.') +import os, shutil, crontab, sys + +def search_str(file_path, word): + with open(file_path, 'r') as file: + # read all content of a file + content = file.read() + # check if string present in a file + if word in content: + return True else: - print("Changes detected.") - for remote in repo.remotes: - print(remote.name, remote.url) - repo.git.add('--all') - repo.git.commit('-m', 'commit message from python script') - remote_name = repo.remote(name=remote.name) - remote_name.push() - - def git_main(self): - list_git_folder = my_git.check_folder(self) - for git_folder_s in list_git_folder: - print(git_folder_s) - #my_git.git_pull(self, git_folder=git_folder_s) - my_git.git_push(self, git_folder=git_folder_s) - -if __name__ == "__main__": - check_my_git = my_git(check_folder= os.sep + "home" + os.sep + os.environ["USER"] + os.sep + "Projekte") - check_my_git.git_main() + return False + + +user_bin = os.environ["HOME"] + os.sep + "bin" +user_zshrc = os.environ["HOME"] + "/.zshrc" + +if not os.path.exists(user_bin): + os.mkdir(user_bin) + +if not search_str(user_zshrc, 'PATH=$PATH:'): + with open(user_zshrc, 'a') as zshrc: + print('PATH=$PATH:' + user_bin, file=zshrc) +else: + print('PATH=$PATH:', "exist in", user_zshrc, sep=' ') + +try: + copy_file = shutil.copyfile(os.path.dirname(os.path.realpath(sys.argv[0])) + os.sep + "pull_and_push.py", user_bin + os.sep + "pull_and_push") + + os.chmod(user_bin + os.sep + "pull_and_push",0o775) +except FileExistsError: + print("File konnte nicht kopiert werden") \ No newline at end of file diff --git a/check_and_add_pull_git/pull_and_push.py b/check_and_add_pull_git/pull_and_push.py new file mode 100644 index 0000000..8d4fa26 --- /dev/null +++ b/check_and_add_pull_git/pull_and_push.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +import os, git + +class my_git(): + def __init__(self, check_folder = str) -> None: + self.check_folders = check_folder + def check_folder(self): + li_all_fo_git = [] + for root, dirs, files in os.walk(self.check_folders, topdown=False): + for name in dirs: + FullPATH = str(os.path.join(root, name)) + if name == ".git": + li_all_fo_git.append(root) + return li_all_fo_git + + def git_pull(self, git_folder): + repo = git.Repo(git_folder) + for remote in repo.remotes: + remote_name = repo.remote(name=remote.name) + remote_name.pull() + + def git_push(self, git_folder): + repo = git.Repo(git_folder) + if not repo.is_dirty(untracked_files=True): + print('No Changes detected.') + else: + print("Changes detected.") + for remote in repo.remotes: + print(remote.name, remote.url) + repo.git.add('--all') + repo.git.commit('-m', 'commit message from python script') + remote_name = repo.remote(name=remote.name) + remote_name.push() + + def git_main(self): + list_git_folder = my_git.check_folder(self) + for git_folder_s in list_git_folder: + print(git_folder_s) + #my_git.git_pull(self, git_folder=git_folder_s) + my_git.git_push(self, git_folder=git_folder_s) + +if __name__ == "__main__": + check_my_git = my_git(check_folder= os.sep + "home" + os.sep + os.environ["USER"] + os.sep + "Projekte") + check_my_git.git_main()