2020-09-28 13:32:19 +02:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import argparse
import logging
import subprocess
import shlex
import sys
from lookyloo . helpers import get_homedir
logging . basicConfig ( format = ' %(asctime)s %(name)s %(levelname)s : %(message)s ' ,
level = logging . INFO , datefmt = ' % I: % M: % S ' )
def keep_going ( ignore = False ) :
if ignore :
return
keep_going = input ( ' Continue? (y/N) ' )
if keep_going . lower ( ) != ' y ' :
print ( ' Okay, quitting. ' )
sys . exit ( )
def run_command ( command ) :
args = shlex . split ( command )
2020-09-28 13:57:21 +02:00
homedir = get_homedir ( )
2020-09-28 13:32:19 +02:00
process = subprocess . run ( args , cwd = homedir , capture_output = True )
print ( process . stdout . decode ( ) )
if process . returncode :
print ( process . stderr . decode ( ) )
sys . exit ( )
if __name__ == ' __main__ ' :
parser = argparse . ArgumentParser ( description = ' Pull latest release, update dependencies, update and validate the config files, update 3rd deps for the website. ' )
parser . add_argument ( ' --yes ' , default = False , action = ' store_true ' , help = ' Run all commands without asking. ' )
args = parser . parse_args ( )
print ( ' * Update repository. ' )
keep_going ( args . yes )
run_command ( ' git pull ' )
print ( ' * Install/update dependencies. ' )
keep_going ( args . yes )
run_command ( ' poetry install ' )
print ( ' * Validate configuration files. ' )
keep_going ( args . yes )
run_command ( ' tools/validate_config_files.py --check ' )
print ( ' * Update configuration files. ' )
keep_going ( args . yes )
run_command ( ' tools/validate_config_files.py --update ' )
print ( ' * Update third party dependencies for the website. ' )
keep_going ( args . yes )
2020-09-28 13:57:21 +02:00
run_command ( ' tools/3rdparty.py ' )