mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2024-11-25 22:21:04 +01:00
Added Discourse update to update-docker.py
This commit is contained in:
parent
b9ed0f38bd
commit
894902bda0
@ -23,6 +23,15 @@ def run_command(command):
|
|||||||
process.stdout.close()
|
process.stdout.close()
|
||||||
|
|
||||||
def git_pull(directory):
|
def git_pull(directory):
|
||||||
|
"""
|
||||||
|
Checks whether the Git repository in the specified directory is up to date and performs a git pull if necessary.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
directory (str): The path to the directory of the Git repository.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
bool: True if a git pull was performed, otherwise False.
|
||||||
|
"""
|
||||||
os.chdir(directory)
|
os.chdir(directory)
|
||||||
print(f"Checking if the git repository in {directory} is up to date.")
|
print(f"Checking if the git repository in {directory} is up to date.")
|
||||||
local = subprocess.check_output("git rev-parse @", shell=True).decode().strip()
|
local = subprocess.check_output("git rev-parse @", shell=True).decode().strip()
|
||||||
@ -31,8 +40,10 @@ def git_pull(directory):
|
|||||||
if local != remote:
|
if local != remote:
|
||||||
print("Repository is not up to date. Performing git pull.")
|
print("Repository is not up to date. Performing git pull.")
|
||||||
run_command("git pull")
|
run_command("git pull")
|
||||||
else:
|
return True;
|
||||||
print("Repository is already up to date.")
|
|
||||||
|
print("Repository is already up to date.")
|
||||||
|
return False;
|
||||||
|
|
||||||
def get_image_digests(directory):
|
def get_image_digests(directory):
|
||||||
compose_project = os.path.basename(directory)
|
compose_project = os.path.basename(directory)
|
||||||
@ -94,6 +105,11 @@ def update_nextcloud():
|
|||||||
print("Start Nextcloud update procedure.")
|
print("Start Nextcloud update procedure.")
|
||||||
update_procedure("docker-compose exec -T -u www-data application /var/www/html/occ app:update --all")
|
update_procedure("docker-compose exec -T -u www-data application /var/www/html/occ app:update --all")
|
||||||
|
|
||||||
|
def update_discourse(directory):
|
||||||
|
os.chdir(directory)
|
||||||
|
print("Start Discourse update procedure.")
|
||||||
|
update_procedure("./launcher rebuild app")
|
||||||
|
|
||||||
# This procedure waits until the container is up
|
# This procedure waits until the container is up
|
||||||
def update_procedure(command):
|
def update_procedure(command):
|
||||||
max_attempts = 3
|
max_attempts = 3
|
||||||
@ -129,9 +145,16 @@ if __name__ == "__main__":
|
|||||||
print(f"Checking for updates in: {dir_path}")
|
print(f"Checking for updates in: {dir_path}")
|
||||||
|
|
||||||
if os.path.isdir(os.path.join(dir_path, ".git")):
|
if os.path.isdir(os.path.join(dir_path, ".git")):
|
||||||
git_pull(dir_path)
|
git_repository_was_pulled = git_pull(dir_path)
|
||||||
|
|
||||||
update_docker(dir_path)
|
# Discourse is an exception and uses own update command instead of docker compose
|
||||||
|
if os.path.basename(dir_path) == "discourse":
|
||||||
if os.path.basename(dir_path) == "nextcloud":
|
if git_repository_was_pulled:
|
||||||
update_nextcloud()
|
update_discourse(dir_path)
|
||||||
|
else:
|
||||||
|
print("Discourse update skipped. No changes in git repository.")
|
||||||
|
else:
|
||||||
|
update_docker(dir_path)
|
||||||
|
# Nextcloud needs additional update procedures
|
||||||
|
if os.path.basename(dir_path) == "nextcloud":
|
||||||
|
update_nextcloud()
|
||||||
|
@ -1 +1 @@
|
|||||||
update_docker_script: "{{path_administrator_scripts}}/update-docker.py"
|
update_docker_script: "{{path_administrator_scripts}}update-docker.py"
|
||||||
|
Loading…
Reference in New Issue
Block a user