- name: Make a list with packages with custom USE flags template: src: packages.j2 dest: /etc/portage/package.use/custom.clt vars: packages: "{{ gentoo.use.custom }}" - name: Freeze packages template: src: packages.j2 dest: /etc/portage/profile/package.provided vars: packages: "{{ apps.freeze }}" - name: Mask packages template: src: packages.j2 dest: /etc/portage/package.mask/custom.clt vars: packages: "{{ apps.mask }}" - name: Unmask packages template: src: packages.j2 dest: /etc/portage/package.accept_keywords/custom.clt vars: packages: "{{ apps.unmask }}" - name: Remove default config files file: path: "/etc/portage/savedconfig/{{ item | dirname }}/" state: absent with_items: "{{ gentoo.use.config }}" tags: - portage - emerge - savedconfig - name: Make directories for savedconfig files file: path: "/etc/portage/savedconfig/{{ item | dirname }}" state: directory with_items: "{{ gentoo.use.config }}" - name: Copy savedconfig files template: src: "savedconfig/{{ item }}" dest: "/etc/portage/savedconfig/{{ item }}" with_items: "{{ gentoo.use.config }}" tags: - portage - emerge - savedconfig - name: Make custom package set template: src: packages.j2 dest: "/etc/portage/sets/{{ apps.set_name }}" vars: packages: "{{ apps.install }}" notify: emerge custom set - name: Remove unused applications portage: package: "{{ apps.remove }}" state: absent # notify: emerge depclean - name: Disable services service: name: "{{ item.name }}" runlevel: "{{ item.runlevel | default(omit) }}" state: stopped enabled: no with_items: "{{ services.disabled }}" - name: Enable services service: name: "{{ item.name }}" runlevel: "{{ item.runlevel | default(omit) }}" state: started enabled: yes with_items: "{{ services.enabled }}" # Download binaries from GitHub # TODO: Mention binary releases in README.md - include: install-github.yml app_name="{{ item.name }}" app_repository="{{ item.repository }}" app_type="{{ item.type }}" with_items: - "{{ apps.github }}" when: false