init.sh 1.5 KB

12345678910111213141516171819202122232425262728293031
  1. {% macro init(values) -%}
  2. #!/bin/sh
  3. {% set config_file = "%s/minetest.conf"|format(values.consts.config_dir) %}
  4. {% set games_dir = "%s/.minetest/games"|format(values.consts.data_dir) %}
  5. {% set base_url = "https://content.luanti.org/packages/%s/%s" | format(values.luanti.author, values.luanti.map_name) %}
  6. {% set download_url = namespace(x="") %}
  7. {% if values.luanti.release %}
  8. {% set download_url.x = "%s/releases/%s/download/" | format(base_url, values.luanti.release) %}
  9. {% else %}
  10. {% set download_url.x = "%s/download/" | format(base_url) %}
  11. {% endif %}
  12. if [ ! -f "{{ config_file }}" ]; then
  13. echo "Minetest configuration file not found, touching it to create default settings."
  14. touch "{{ config_file }}"
  15. fi
  16. mkdir -p "{{ games_dir }}/{{ values.luanti.map_name }}"
  17. if [ -z "$(ls -A '{{ games_dir }}/{{ values.luanti.map_name }}')" ]; then
  18. echo "Downloading {{ values.luanti.author }}/{{ values.luanti.map_name }} from {{ download_url.x }}"
  19. wget -O "/tmp/{{ values.luanti.map_name }}.zip" "{{ download_url.x }}" || {
  20. echo "Failed to download {{ values.luanti.map_name }} from {{ download_url.x }}"; exit 1
  21. }
  22. echo "Unzipping {{ values.luanti.map_name }} to {{ games_dir }}"
  23. unzip -q "/tmp/{{ values.luanti.map_name }}.zip" -d "{{ games_dir }}" || {
  24. echo "Downloaded file is not a valid zip archive."; exit 1
  25. }
  26. else
  27. echo "Directory {{ games_dir }}/{{ values.luanti.map_name }} is not empty, assuming game is already installed."
  28. fi
  29. {% endmacro %}