# Configure package management.
- name: update package lists
apt: update_cache=yes
- - name: check for initial_purge_happened flag
- stat: path=flags/initial_purge_happened
- register: initial_purge
- - name: perform initial purge
- include: tasks/initial_purge.yml
- when: initial_purge.stat.exists == False
+ #- name: check for initial_purge_happened flag
+ # stat: path=flags/initial_purge_happened
+ # register: initial_purge
+ #- name: perform initial purge
+ # include: tasks/initial_purge.yml
+ # when: initial_purge.stat.exists == False
- name: APT - dist-upgrade
apt: upgrade=dist
shell: update-grub
# Ensure power management.
- - name: ensure newest kernel and grub are installed
+ - name: ensure power management tools are installed
apt: name={{item}} state=present
with_items:
- tlp
- xul-ext-noscript
- xul-ext-pentadactyl
- vim-gtk # used by pentadactyl for text editing
+
+ # Remove undesired packages
+ - name: collect required packages
+ shell: cat files/apt-mark/* > /tmp/white_list_unsorted && sort /tmp/white_list_unsorted > /tmp/white_list_sorted
+ - name: collect currently installed packages
+ shell: dpkg-query -Wf '${Package}\n' > /tmp/all_unsorted && sort /tmp/all_unsorted > /tmp/all_sorted
+ - name: create black list of packages to mark as automatically installed from the difference between the required packages and the packages currently installed
+ shell: comm -3 /tmp/all_sorted /tmp/white_list_sorted > /tmp/list_black
+ - name: mark all packages from black list as automatically installed
+ shell: apt-mark auto $(cat /tmp/list_black)
+ - name: purge all packages automatically installed that are not depended on
+ shell: DEBIAN_FRONTEND=noninteractive apt-get -y --purge autoremove