---

- name: Fail if playbook called incorrectly
  fail:
    msg: "The `username` variable needs to be provided to this playbook, via --extra-vars"
  when: "username is not defined or username == '<your-username>'"

- name: Fail if playbook called incorrectly
  fail:
    msg: "The `password` variable needs to be provided to this playbook, via --extra-vars"
  when: "password is not defined or password == '<your-password>'"

- name: Fail if not using matrix-postgres container
  fail:
    msg: "This command is working only when matrix-postgres container is being used"
  when: "not matrix_postgres_enabled|bool"

- name: Ensure matrix-synapse is started
  service:
    name: matrix-synapse
    state: started
    daemon_reload: yes
  register: start_result

- name: Ensure matrix-postgres is started
  service:
    name: matrix-postgres
    state: started
    daemon_reload: yes
  register: postgres_start_result


- name: Wait a while, so that Matrix Synapse can manage to start
  pause:
    seconds: 7
  when: "start_result.changed or postgres_start_result.changed"

- name: Generate password hash
  shell: "{{ matrix_host_command_docker }} exec matrix-synapse /usr/local/bin/hash_password -c /data/homeserver.yaml -p {{ password|quote }}"
  register: password_hash

- name: Update user password hash
  command: "{{ matrix_local_bin_path }}/matrix-postgres-update-user-password-hash {{ username|quote }} {{ password_hash.stdout|quote }}"