feat(golang): add go package management

This commit is contained in:
N 2019-08-18 15:47:11 +01:00
parent 8941b20835
commit 284b240c33
No known key found for this signature in database
GPG key ID: 55A292EAB4E54067
9 changed files with 69 additions and 4 deletions

View file

@ -176,6 +176,16 @@ You can specify:
Centos has no native ``snapd`` package at this time. Centos has no native ``snapd`` package at this time.
``packages.golang``
-------------------
You can specify:
* ``clean`` golang packages, removed using ``go clean -i <item>...``.
* ``goget`` golang packages, installed using ``go get``.
``packages.remote_pkgs`` ``packages.remote_pkgs``
------------------------ ------------------------

View file

@ -33,7 +33,7 @@ packages-archive-wanted-target-{{ package }}-directory:
{%- if packages.tmpdir != '/tmp' %} {%- if packages.tmpdir != '/tmp' %}
- {{ packages.tmpdir }} - {{ packages.tmpdir }}
{%- endif %} {%- endif %}
- user: {{ 'root' if 'user' not in archive else archive.user }} - user: {{ packages.rootuser if 'user' not in archive else archive.user }}
- mode: {{ '0755' if 'mode' not in archive else archive.mode }} - mode: {{ '0755' if 'mode' not in archive else archive.mode }}
- makedirs: True - makedirs: True
- require_in: - require_in:
@ -85,7 +85,7 @@ packages-archive-wanted-download-{{ package }}:
- name: {{ archive.dest }}/{{ archivename }} - name: {{ archive.dest }}/{{ archivename }}
- source: {{ archive.dl.source }} - source: {{ archive.dl.source }}
- mode: {{ '0755' if archive.dl.format in ('bin',) else '0644' if 'mode' not in archive else archive.mode }} - mode: {{ '0755' if archive.dl.format in ('bin',) else '0644' if 'mode' not in archive else archive.mode }}
- user: {{ 'root' if 'user' not in archive else archive.user }} - user: {{ packages.rootuser if 'user' not in archive else archive.user }}
- makedirs: True - makedirs: True
{%- if 'hashsum' in archive.dl and archive.dl.hashsum %} {%- if 'hashsum' in archive.dl and archive.dl.hashsum %}
- source_hash: {{ archive.dl.hashsum }} - source_hash: {{ archive.dl.hashsum }}

View file

@ -2,6 +2,7 @@
# vim: ft=yaml # vim: ft=yaml
packages: packages:
tmpdir: /tmp/saltstack-packages-formula-archives tmpdir: /tmp/saltstack-packages-formula-archives
rootuser: root
remote_pkgs: {} remote_pkgs: {}
pkgs: pkgs:
held: {} held: {}
@ -40,6 +41,9 @@ packages:
required: required:
states: [] states: []
pkgs: [] pkgs: []
golang:
goget: []
clean: []
archives: archives:
pkgs: pkgs:
required: ['curl', 'bzip2', 'gzip'] required: ['curl', 'bzip2', 'gzip']

15
packages/golang/clean.sls Normal file
View file

@ -0,0 +1,15 @@
# -*- coding: utf-8 -*-
# vim: ft=sls
{#- Get the `tplroot` from `tpldir` #}
{%- set tplroot = tpldir.split('/')[0] %}
{%- from tplroot ~ "/map.jinja" import packages with context %}
{%- for package in packages.golang.clean %}
packages-golang-clean-cmd-run-go-clean-{{ package }}:
cmd.run:
- name: go clean -i {{ package }}...
- runas: {{ packages.rootuser }}
{%- endfor %}

15
packages/golang/goget.sls Normal file
View file

@ -0,0 +1,15 @@
# -*- coding: utf-8 -*-
# vim: ft=sls
{#- Get the `tplroot` from `tpldir` #}
{%- set tplroot = tpldir.split('/')[0] %}
{%- from tplroot ~ "/map.jinja" import packages with context %}
{%- for package in packages.golang.goget %}
packages-golang-goget-cmd-run-go-get-{{ package }}:
cmd.run:
- name: go get {{ package }}
- runas: {{ packages.rootuser }}
{%- endfor %}

6
packages/golang/init.sls Normal file
View file

@ -0,0 +1,6 @@
# -*- coding: utf-8 -*-
# vim: ft=sls
include:
- .clean
- .goget

View file

@ -18,3 +18,10 @@
), ),
base='packages') base='packages')
%} %}
{#- Post-processing for specific non-YAML customisations #}
{%- do packages.update({'kernel': grains.kernel | lower}) %}
{%- if grains.os == 'MacOS' %}
{%- set macos_user = salt['cmd.run']("stat -f '%Su' /dev/console") %}
{%- do packages.update({'rootuser': macos_user}) %}
{%- endif %}

View file

@ -32,8 +32,8 @@ npm_req_pkgs:
npms_dir: npms_dir:
file.directory: file.directory:
- name: {{ packages.npms.dir }} - name: {{ packages.npms.dir }}
- user: {{ 'root' if 'user' not in packages.npms else packages.npms.user }} - user: {{ packages.rootuser if 'user' not in packages.npms else packages.npms.user }}
- group: {{ 'root' if 'group' not in packages.npms else packages.npms.group }} - group: {{ packages.rootuser if 'group' not in packages.npms else packages.npms.group }}
- mode: {{ '0755' if 'mode' not in packages.npms else packages.npms.mode }} - mode: {{ '0755' if 'mode' not in packages.npms else packages.npms.mode }}
- makedirs: True - makedirs: True
{% endif %} {% endif %}

View file

@ -61,6 +61,14 @@ packages:
unwanted: unwanted:
- goodbye-world - goodbye-world
golang:
goget:
- github.com/golang/example/hello
- github.com/golang/example/outyet
clean:
- github.com/golang/example/hello
- github.com/golang/example/outyet
npms: npms:
dir: /home/kitchen/npms # The target directory in which to install the package, or None for global installation dir: /home/kitchen/npms # The target directory in which to install the package, or None for global installation
user: kitchen # The user to run NPM with (and to assign to `dir`) user: kitchen # The user to run NPM with (and to assign to `dir`)