summaryrefslogtreecommitdiff
path: root/roles/actualbudget/tasks/main.yml
blob: a76acd6e204f6bb4f803ac6d118429e7cdc16dc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
- name: Install NPM
  community.general.apk:
    name:
      - npm

- name: Check current actual-server version
  register: prev_actualbudget_version
  changed_when: false
  failed_when: false
  ansible.builtin.command:
    cmd: actual-server --version

- name: Install actual-server with NPM
  block:
    - name: Install actual-server with NPM
      ansible.builtin.command: npm install --global @actual-app/sync-server
      changed_when: false
    - name: Check new actual-server version
      register: new_actualbudget_version
      ansible.builtin.command: actual-server --version
      changed_when: prev_actualbudget_version.stdout != new_actualbudget_version.stdout

- name: Install update script
  ansible.builtin.copy:
    src: update_actualbudget
    dest: /usr/bin/update_actualbudget
    mode: "755"

- name: Install daily timer to update actualbudget
  ansible.builtin.cron:
    special_time: daily
    name: Update actualbudget
    job: /usr/bin/update_actualbudget

- name: Install actualbudget service
  register: actualbudget_service
  ansible.builtin.template:
    src: openrc/actualbudget
    dest: /etc/init.d/actualbudget
    mode: "755"

- name: Create actualbudget data directory
  ansible.builtin.file:
    path: "{{ actualbudget_data_dir }}"
    state: directory

- name: Restart actualbudget service and configure to start on boot
  when:
    new_actualbudget_version is changed
      or actualbudget_service is changed
  ansible.builtin.service:
    name: actualbudget
    enabled: true
    state: restarted

- name: Start actualbudget service and configure to start on boot
  when:
    not (
      new_actualbudget_version is changed
        or actualbudget_service is changed )
  ansible.builtin.service:
    name: actualbudget
    enabled: true
    state: started