From 7db2c2bbab1bbe5321c5bab31d472e4b435f8a31 Mon Sep 17 00:00:00 2001 From: Salt Date: Wed, 24 Jun 2020 10:38:24 -0500 Subject: [PATCH] Switch gears, use installer script --- roles/minecraft/tasks/main.yml | 27 ++++++----------------- roles/minecraft/templates/install.sh | 33 ++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 20 deletions(-) create mode 100644 roles/minecraft/templates/install.sh diff --git a/roles/minecraft/tasks/main.yml b/roles/minecraft/tasks/main.yml index 351c29c..a5600b7 100644 --- a/roles/minecraft/tasks/main.yml +++ b/roles/minecraft/tasks/main.yml @@ -70,30 +70,17 @@ remote_src: yes dest: "/var/minecraft/{{ mcname }}" notify: "restart minecraft {{ mcname }}" - - name: Look for MultiMC pack - find: - path: "/var/minecraft/{{ mcname }}" - patterns: '.minecraft' - ignore_errors: yes - register: find_multimc - - name: Move .minecraft contents to root + - name: Template out install script + template: + src: "install.sh" + dest: "/var/minecraft/{{ mcname }}/install.sh" + - name: Run install script command: chdir: "/var/minecraft/{{ mcname }}" argv: - - mv - - "/var/minecraft/{{ mcname }}/*/.minecraft/*" - - "." + - bash + - "./install.sh" notify: "restart minecraft {{ mcname }}" - when: not find_multimc is failed - - name: Remove MultiMC artifacts - file: - path: "{{ item }}" - state: absent - loop: - - "/var/minecraft/{{ mcname }}/.minecraft" - - "/var/minecraft/{{ mcname }}/instance.cfg" - - "/var/minecraft/{{ mcname }}/mmc-pack.json" - when: not find_multimc is failed when: get_mcpack is changed - name: Check for Forge stat: diff --git a/roles/minecraft/templates/install.sh b/roles/minecraft/templates/install.sh new file mode 100644 index 0000000..02c6e37 --- /dev/null +++ b/roles/minecraft/templates/install.sh @@ -0,0 +1,33 @@ +#! /bin/sh +# +# install.sh +# Because writing this logic in Ansible is kinda dumb +# Copyright (C) 2020 Vintage Salt +# +# Distributed under terms of the MIT license. +# + +set -e + +# Get to our magic dir +export MINECRAFT_DIR="/var/minecraft/{{ mcname }}" +cd "$MINECRAFT_DIR" || exit 50 + +# If the mods and config directories exist, we don't need to do anything +# We make the inference here because the previous step of the playbook removed them +if [ -d "mods" ]; then + exit 0 +fi + +# MultiMC packs are organized as such: +# ./Pack Name/.minecraft/{mods,configs,etc.} +# ./Pack Name/minecraft/{mods,configs,etc.} +# I'm going to elect not to support the latter just for the sake of my sanity +packdir="$(find -type d -iname ".minecraft" | head -n 1)" +if ! [ -d "$packdir" ]; then + exit 51 +fi +# Just move the shit out 4head +mv "$packdir"/* . +exit 0 +