diff --git a/roles/core/userland-software/init.sls b/roles/core/userland-software/init.sls index e00f626..69843f8 100644 --- a/roles/core/userland-software/init.sls +++ b/roles/core/userland-software/init.sls @@ -1,193 +1,194 @@ # ------------------------------------------------------------- # Salt — Provision software needed by other core roles # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Project: Nasqueron # Created: 2016-04-09 # License: Trivial work, not eligible to copyright # ------------------------------------------------------------- {% from "map.jinja" import dirs, packages with context %} # ------------------------------------------------------------- # Software sources # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {% if grains['os'] == 'FreeBSD' %} /usr/local/etc/pkg/repos/Nasqueron.conf: file.managed: - source: salt://roles/core/userland-software/files/Nasqueron.conf - makedirs: True {% endif %} {% if grains['os_family'] == 'RedHat' and grains['os'] != 'Fedora' %} epel-release: pkg.installed /etc/yum.repos.d/nasqueron.repo: file.managed: - source: salt://roles/core/userland-software/files/nasqueron.repo {% endif %} {% if grains['os'] == 'Debian' %} /etc/apt/sources.list: file.managed: - source: salt://roles/core/userland-software/files/sources.list - template: jinja - context: debian_version: {{ grains['oscodename'] }} apt_update_debian_sources: cmd.run: - name: apt update - onchanges: - file: /etc/apt/sources.list {% endif %} {% if grains['kernel'] == 'Linux' %} snapd: pkg.installed {% endif %} {% if grains['os_family'] == 'RedHat' or grains['os'] == 'Arch' %} snap_enable: cmd.run: - name: | systemctl enable --now snapd.socket systemctl restart snapd sleep 30 touch /var/lib/snapd/.enabled - creates: /var/lib/snapd/.enabled /snap: file.symlink: - target: /var/lib/snapd/snap {% endif %} {% if grains['os'] == 'FreeBSD' %} /etc/periodic/daily/720.portsnap: file.managed: - source: salt://roles/core/userland-software/files/720.portsnap {% endif %} # ------------------------------------------------------------- # Shells # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - shells: pkg.installed: - pkgs: - bash - zsh {% if grains['kernel'] == 'Linux' %} - tcsh {% endif %} # Shell utilities {% if grains['os'] == 'FreeBSD' %} - starship {% endif %} {% if grains['kernel'] == 'Linux' and grains['osarch'] == 'x86_64' %} install_starship: cmd.run: - name: snap install starship - creates: /var/lib/snapd/snap/bin/starship {% endif %} /usr/local/share/zsh/site-functions/_pm: file.managed: # At commit 683d331 - 2017-11-05 - source: https://raw.githubusercontent.com/Angelmmiguel/pm/master/zsh/_pm - source_hash: deea33968be713cdbd8385d3a72df2dd09c444e42499531893133f009f0ce0ea - makedirs: True # ------------------------------------------------------------- # tmux # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tmux: pkg.installed {{ dirs.etc }}/tmux.conf: file.managed: - source: salt://roles/core/userland-software/files/tmux.conf {{ dirs.bin }}/tmux-reattach: file.managed: - source: salt://roles/core/userland-software/files/tmux-reattach.sh - mode: 755 # ------------------------------------------------------------- # Python # # The "python3" package takes care on FreeBSD to create # the symbolic link to the relevant Python 3.x version. # # If Python is implicitly installed instead, it will be # a package like python3.9 without the symlink. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - python3: pkg.installed # ------------------------------------------------------------- # System administration utilities # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sysadmin_utilities: pkg.installed: - pkgs: - bat - colordiff - nano - ripgrep - tree - wget {% if grains['os'] == 'FreeBSD' %} - gnu-watch {% else %} - {{ packages.netcat }} - net-tools {% endif %} {% if grains['os_family'] == 'RedHat' %} + - patch - psmisc - tar {% endif %} {% if grains['os'] == 'Debian' %} /usr/bin/bat: file.symlink: - target: /usr/bin/batcat {% endif %} {% if grains['os'] == 'FreeBSD' %} /usr/local/bin/gwatch: file.symlink: - target: /usr/local/bin/gnu-watch {% endif %} {% if grains['os_family'] == 'RedHat' %} {{ dirs.bin }}/new-partition: file.managed: - source: salt://roles/core/userland-software/files/new-partition.sh - mode: 755 {% endif %} # ------------------------------------------------------------- # Nano configuration # # YAML syntax highlighting is only available on newest versions: # As checked 2023-04-19, it's not available on Debian and Rocky. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {% if salt['file.file_exists'](dirs["share"] + "/nano/yaml.nanorc") %} nano_sls_support: file.replace: - name: {{ dirs.share }}/nano/yaml.nanorc - pattern: {{ 'syntax yaml "\.ya?ml$"' | regex_escape }} - repl: syntax yaml "\.(ya?ml|sls)$" {% endif %} {{ dirs.etc }}/nanorc: nano.config_autogenerated: - nanorc_dir: {{ dirs.share }}/nano