--- - name: Ensure local Gemini ACP build directory exists ansible.builtin.file: path: "{{ acp_gemini_bridge_local_build_dir }}" state: directory mode: "0755" delegate_to: localhost become: false when: not (acp_gemini_bridge_use_prebuilt | bool) - name: Build XWorkmate Go ACP adapter locally for Gemini ansible.builtin.command: cmd: go build -o "{{ acp_gemini_bridge_local_binary_path }}" . chdir: "{{ acp_gemini_bridge_local_source_dir }}" environment: GOOS: "{{ acp_gemini_bridge_build_goos }}" GOARCH: "{{ acp_gemini_bridge_build_goarch }}" CGO_ENABLED: "0" GO111MODULE: "on" delegate_to: localhost become: false check_mode: false when: not (acp_gemini_bridge_use_prebuilt | bool) - name: Inspect Gemini bridge binary attributes ansible.builtin.command: cmd: lsattr "{{ acp_gemini_bridge_binary_path }}" register: acp_gemini_bridge_binary_attrs changed_when: false failed_when: false - name: Remove immutable flag from Gemini bridge binary when present ansible.builtin.command: cmd: chattr -i "{{ acp_gemini_bridge_binary_path }}" when: - ansible_os_family != 'Darwin' - "'i' in (acp_gemini_bridge_binary_attrs.stdout | default(''))" changed_when: true become: true - name: Upload XWorkmate Go ACP adapter binary for Gemini ansible.builtin.copy: src: "{{ acp_gemini_bridge_local_binary_path }}" dest: "{{ acp_gemini_bridge_binary_path }}" owner: "{{ acp_gemini_service_user }}" group: "{{ acp_gemini_service_group }}" mode: "0755" notify: Restart acp gemini when: not (acp_gemini_bridge_use_prebuilt | bool) - name: Restore immutable flag on Gemini bridge binary ansible.builtin.command: cmd: chattr +i "{{ acp_gemini_bridge_binary_path }}" when: - ansible_os_family != 'Darwin' - "'i' in (acp_gemini_bridge_binary_attrs.stdout | default(''))" changed_when: true become: true - name: Deploy Gemini ACP systemd service ansible.builtin.command: cmd: lsattr "/etc/systemd/system/{{ acp_gemini_service_name }}.service" register: acp_gemini_service_attrs changed_when: false failed_when: false when: ansible_os_family != 'Darwin' - name: Remove immutable flag from Gemini ACP systemd service when present ansible.builtin.command: cmd: chattr -i "/etc/systemd/system/{{ acp_gemini_service_name }}.service" when: - ansible_os_family != 'Darwin' - "'i' in (acp_gemini_service_attrs.stdout | default(''))" changed_when: true become: true - name: Deploy Gemini ACP systemd service ansible.builtin.template: src: gemini-acp.service.j2 dest: "/etc/systemd/system/{{ acp_gemini_service_name }}.service" owner: root group: root mode: "0644" notify: Restart acp gemini when: ansible_os_family != 'Darwin' - name: Restore immutable flag on Gemini ACP systemd service ansible.builtin.command: cmd: chattr +i "/etc/systemd/system/{{ acp_gemini_service_name }}.service" when: - ansible_os_family != 'Darwin' - "'i' in (acp_gemini_service_attrs.stdout | default(''))" changed_when: true become: true - name: Reload systemd manager configuration ansible.builtin.systemd: daemon_reload: true when: ansible_os_family != 'Darwin' - name: Ensure Caddy is enabled and running ansible.builtin.systemd: name: caddy enabled: true state: started when: - ansible_os_family != 'Darwin' - acp_gemini_manage_caddy | bool - name: Ensure Gemini ACP service is enabled and running ansible.builtin.systemd: name: "{{ acp_gemini_service_name }}" enabled: true state: started when: - not ansible_check_mode - ansible_os_family != 'Darwin' - name: Import macOS specific Gemini ACP tasks ansible.builtin.import_tasks: macos.yml when: ansible_os_family == 'Darwin'