diff --git a/update_repos.py b/update_repos.py new file mode 100644 index 0000000..97efa16 --- /dev/null +++ b/update_repos.py @@ -0,0 +1,36 @@ +import os +import subprocess +from termcolor import colored + + +def main(): + print(colored('UwU Hewwo goowd siw! I wiww upwate youw wepos :3', 'magenta')) + print('You smelly self compiling narcissist~ OwO') + + # change folder name below if you keep your repos in a different place + path_to_folders = os.environ['HOME'] + '/sources/' + + list_of_folders = [d for d in os.listdir(path_to_folders) if os.path.isdir(os.path.join(path_to_folders, d))] + print('Found folders ', colored(f'{list_of_folders}', 'green'), ' in ', colored(f'{path_to_folders}', 'green')) + + # append base directory to subdirectory names + for i in range(len(list_of_folders)): + list_of_folders[i] = path_to_folders + list_of_folders[i] + + # list repos (folders that have '.git' as a subfolder) + list_of_repos = [d for d in list_of_folders if '.git' in os.listdir(d)] + print('Found repos ', colored(f'{list_of_repos}', 'yellow')) + + # call git in every repository + i = 1 + for repo in list_of_repos: + print(colored(f'\n[{i}/{len(list_of_repos)}]', 'magenta'), 'Calling "git pull" in', colored(f'{repo}:', 'blue')) + process = subprocess.Popen(['git', 'pull'], cwd=repo) + output = process.communicate()[0] + i += 1 + + print(f'\nOwO {len(list_of_repos)} tasks compweted successfuwwy') + + +main() +