---

- name: check/run upgrade
  command: sudo -u www-data php updater.phar --no-interaction
  args:
    chdir: "{{ nc_dir }}/updater"
    warn: False
  register: upgrade_result
  changed_when: upgrade_result.stdout is not search('Nothing to do.')

- name: update apps
  command: "sudo -u www-data php ./occ app:update --all"
  args:
    chdir: "{{ nc_dir }}"
    warn: False
  register: cmd_result
  changed_when: cmd_result.stdout | length > 0

- name: install extra apps
  command: "sudo -u www-data php ./occ app:install {{ item }}"
  args:
    chdir: "{{ nc_dir }}"
    warn: False
  with_items: "{{ nc_apps }}"
  register: cmd_result
  changed_when: cmd_result.stdout is not search('already installed')
  failed_when:  cmd_result.stdout is not search('already installed') and cmd_result.rc != 0

## DB fixes (only on upgrade)
- name: add missing indices
  command: "sudo -u www-data php ./occ db:add-missing-indices"
  args:
    chdir: "{{ nc_dir }}"
    warn: False
  register: cmd_result
  changed_when: cmd_result.stdout is search('table updated successfully')
  when: upgrade_result.changed | default(true)

- name: add missing columns
  command: "sudo -u www-data php ./occ db:add-missing-columns"
  args:
    chdir: "{{ nc_dir }}"
    warn: False
  register: cmd_result
  changed_when: cmd_result.stdout is search('table updated successfully')
  when: upgrade_result.changed | default(true)

- name: convert filecache to bigint
  command: "sudo -u www-data php ./occ -n db:convert-filecache-bigint"
  args:
    chdir: "{{ nc_dir }}"
    warn: False
  register: cmd_result
  changed_when: cmd_result.stdout is not search('tables already up to date')
  when: upgrade_result.changed | default(true)