Saltstack Official PHP Formula
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.6KB

  1. {% from "php/ng/map.jinja" import php with context %}
  2. {% set install_file = php.lookup.pkgs.local_bin + '/' + php.lookup.pkgs.composer_bin %}
  3. {% if not salt['config.get']('sudo_user') %}
  4. {% set salt_user = salt['config.get']('user', 'root') %}
  5. {% else %}
  6. {% set salt_user = salt['config.get']('sudo_user', 'root') %}
  7. {% endif %}
  8. {% set salt_user_home = salt['user.info'](salt_user).get('home', '/root') %}
  9. include:
  10. - php.ng
  11. get-composer:
  12. file.managed:
  13. - name: {{ php.lookup.pkgs.temp_dir }}/installer
  14. - mode: 0755
  15. - unless: test -f {{ install_file }}
  16. - source: https://getcomposer.org/installer
  17. - source_hash: https://composer.github.io/installer.sig
  18. - require:
  19. - pkg: php
  20. install-composer:
  21. cmd.run:
  22. - name: php {{ php.lookup.pkgs.temp_dir }}/installer --filename={{ php.lookup.pkgs.composer_bin }} --install-dir={{ php.lookup.pkgs.local_bin }}
  23. - unless: test -f {{ install_file }}
  24. - env:
  25. - HOME: {{ salt_user_home }}
  26. - require:
  27. - file: get-composer
  28. # Get COMPOSER_DEV_WARNING_TIME from the installed composer, and if that time has passed
  29. # then it's time to run `composer selfupdate`
  30. #
  31. # It would be nice if composer had a command line switch to get this, but it doesn't,
  32. # and so we just grep for it.
  33. #
  34. update-composer:
  35. cmd.run:
  36. - name: "{{ install_file }} selfupdate"
  37. - unless: test $(grep --text COMPOSER_DEV_WARNING_TIME {{ install_file }} | egrep '^\s*define' | sed -e 's,[^[:digit:]],,g') \> $(php -r 'echo time();')
  38. - cwd: {{ php.lookup.pkgs.local_bin }}
  39. - env:
  40. - HOME: {{ salt_user_home }}
  41. - require:
  42. - cmd: install-composer