# nginx.src
#
# Manages installation of nginx from source.

{% from 'nginx/map.jinja' import nginx, sls_block with context %}

nginx_deps:
  pkg.installed:
    - pkgs:
      - libpcre3-dev
      - libssl-dev
      - zlib1g-dev

nginx_download:
  archive.extracted:
    - name: /tmp/
    - source: http://nginx.org/download/nginx-{{ nginx.source_version }}.tar.gz
    - source_hash: sha256={{ nginx.source_hash }}
    - archive_format: tar
    - if_missing: /usr/sbin/nginx-{{ nginx.source_version }}
    - require:
      - pkg: nginx_deps

nginx_configure:
  cmd.run:
    - name: ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path={{ nginx.lookup.conf_file }} {{ nginx.source.opts | join(' ') }}
    - cwd: /tmp/nginx-{{ nginx.source_version }}
    - onchanges:
      - archive: nginx_download

nginx_compile:
  cmd.run:
    - name: make
    - cwd: /tmp/nginx-{{ nginx.source_version }}
    - onchanges:
      - cmd: nginx_configure

nginx_install:
  cmd.run:
    - name: make install
    - cwd: /tmp/nginx-{{ nginx.source_version }}
    - onchanges:
      - cmd: nginx_compile

nginx_link:
  file.copy:
    - name: /usr/sbin/nginx-{{ nginx.source_version }}
    - source: /usr/sbin/nginx
    - onchanges:
      - cmd: nginx_install