packages: add Haskell packages
Use cabal to build hadolint instead of using a container
This commit is contained in:
parent
f9498a3926
commit
730113a3c5
|
@ -1,3 +1,3 @@
|
||||||
|
prefix=${XDG_DATA_HOME}/npm
|
||||||
cache=${XDG_CACHE_HOME}/npm
|
cache=${XDG_CACHE_HOME}/npm
|
||||||
tmp=${XDG_RUNTIME_DIR}/npm
|
|
||||||
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js
|
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js
|
||||||
|
|
|
@ -9,7 +9,6 @@ local M = {
|
||||||
|
|
||||||
-- Plugins loaded on startup
|
-- Plugins loaded on startup
|
||||||
['lewis6991/impatient.nvim'] = { opt = false },
|
['lewis6991/impatient.nvim'] = { opt = false },
|
||||||
['antoinemadec/FixCursorHold.nvim'] = { opt = false },
|
|
||||||
['folke/which-key.nvim'] = {
|
['folke/which-key.nvim'] = {
|
||||||
config = function()
|
config = function()
|
||||||
require('user.modules.core.config.which-key')
|
require('user.modules.core.config.which-key')
|
||||||
|
|
|
@ -6,6 +6,7 @@ M['MTDL9/vim-log-highlighting'] = { ft = 'log' }
|
||||||
M['Glench/Vim-Jinja2-Syntax'] = { ft = 'jinja' }
|
M['Glench/Vim-Jinja2-Syntax'] = { ft = 'jinja' }
|
||||||
M['mracos/mermaid.vim'] = { ft = 'mermaid' }
|
M['mracos/mermaid.vim'] = { ft = 'mermaid' }
|
||||||
M['tsandall/vim-rego'] = { ft = 'rego' }
|
M['tsandall/vim-rego'] = { ft = 'rego' }
|
||||||
|
M['vmchale/dhall-vim'] = { ft = 'dhall' }
|
||||||
|
|
||||||
M['NvChad/nvim-colorizer.lua'] = {
|
M['NvChad/nvim-colorizer.lua'] = {
|
||||||
cmd = 'ColorizerToggle',
|
cmd = 'ColorizerToggle',
|
||||||
|
|
|
@ -109,21 +109,21 @@ local lsp_servers = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
yamlls = {
|
-- yamlls = {
|
||||||
cmd = { servers_path .. '/yamlls/node_modules/.bin/yaml-language-server', '--stdio' },
|
-- cmd = { servers_path .. '/yamlls/node_modules/.bin/yaml-language-server', '--stdio' },
|
||||||
settings = {
|
-- settings = {
|
||||||
redhat = { telemetry = { enabled = false } },
|
-- redhat = { telemetry = { enabled = false } },
|
||||||
yaml = {
|
-- yaml = {
|
||||||
format = {
|
-- format = {
|
||||||
bracketSpacing = true,
|
-- bracketSpacing = true,
|
||||||
printWidth = 80,
|
-- printWidth = 80,
|
||||||
-- proseWrap = 'always', -- default is 'preserve'
|
-- -- proseWrap = 'always', -- default is 'preserve'
|
||||||
-- singleQuote = true,
|
-- -- singleQuote = true,
|
||||||
},
|
-- },
|
||||||
schemas = require('schemastore').json.schemas(),
|
-- schemas = require('schemastore').json.schemas(),
|
||||||
},
|
-- },
|
||||||
},
|
-- },
|
||||||
},
|
-- },
|
||||||
ansiblels = {
|
ansiblels = {
|
||||||
cmd = { servers_path .. '/ansiblels/node_modules/.bin/ansible-language-server', '--stdio' },
|
cmd = { servers_path .. '/ansiblels/node_modules/.bin/ansible-language-server', '--stdio' },
|
||||||
filetypes = { 'yaml' },
|
filetypes = { 'yaml' },
|
||||||
|
@ -301,6 +301,7 @@ local lsp_servers = {
|
||||||
cssls = { cmd = { servers_path .. '/vscode/node_modules/.bin/vscode-css-language-server', '--stdio' } },
|
cssls = { cmd = { servers_path .. '/vscode/node_modules/.bin/vscode-css-language-server', '--stdio' } },
|
||||||
-- vimls = { cmd = { servers_path .. '/vimls/node_modules/.bin/vim-language-server', '--stdio' } },
|
-- vimls = { cmd = { servers_path .. '/vimls/node_modules/.bin/vim-language-server', '--stdio' } },
|
||||||
jsonnet_ls = { cmd = { servers_path .. '/jsonnet_ls/jsonnet-language-server' } },
|
jsonnet_ls = { cmd = { servers_path .. '/jsonnet_ls/jsonnet-language-server' } },
|
||||||
|
dhall_lsp_server = {},
|
||||||
}
|
}
|
||||||
|
|
||||||
local function lsp_init()
|
local function lsp_init()
|
||||||
|
|
|
@ -56,10 +56,7 @@ local sources = {
|
||||||
return utils.root_has_file(potential_cspell_files)
|
return utils.root_has_file(potential_cspell_files)
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
hadolint = {
|
'hadolint',
|
||||||
command = vim.fn.stdpath('config') .. '/scripts/hadolint',
|
|
||||||
args = { '$FILENAME' },
|
|
||||||
},
|
|
||||||
-- 'luacheck',
|
-- 'luacheck',
|
||||||
'cppcheck',
|
'cppcheck',
|
||||||
-- gitlint = { command = linters_path .. '/gitlint/venv/bin/gitlint' },
|
-- gitlint = { command = linters_path .. '/gitlint/venv/bin/gitlint' },
|
||||||
|
|
|
@ -10,11 +10,13 @@ abbr kn kubens
|
||||||
abbr t terraform
|
abbr t terraform
|
||||||
|
|
||||||
# remap
|
# remap
|
||||||
alias cp='cp -vir'
|
alias cp 'cp -vir'
|
||||||
alias mv='mv -vi'
|
alias mv 'mv -vi'
|
||||||
alias rm='rm -vr'
|
alias rm 'rm -vr'
|
||||||
alias mkdir='mkdir -vp'
|
alias mkdir 'mkdir -vp'
|
||||||
{% if multiplexer == 'tmux' %}
|
{% if multiplexer == 'tmux' %}
|
||||||
|
|
||||||
|
# true color in tmux pane
|
||||||
abbr tmux 'TERM=screen-256color command tmux'
|
abbr tmux 'TERM=screen-256color command tmux'
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ status is-login; and umask {{ umask }}
|
||||||
|
|
||||||
# PATH
|
# PATH
|
||||||
set -e fish_user_paths
|
set -e fish_user_paths
|
||||||
for path in $XDG_CONFIG_HOME/emacs/bin $XDG_BIN_HOME $CARGO_HOME/bin $GOPATH/bin $NPM_CONFIG_PREFIX/bin $KREW_ROOT/bin
|
for path in $XDG_CONFIG_HOME/emacs/bin $XDG_BIN_HOME $CARGO_HOME/bin $GOPATH/bin $NPM_CONFIG_PREFIX/bin $KREW_ROOT/bin $CABAL_DIR/bin
|
||||||
test -d $path && set -ga fish_user_paths $path
|
test -d $path && set -ga fish_user_paths $path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,6 @@ set -gx GRADLE_USER_HOME $XDG_DATA_HOME/gradle
|
||||||
set -gx _JAVA_OPTIONS -Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java
|
set -gx _JAVA_OPTIONS -Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java
|
||||||
set -gx NODE_REPL_HISTORY $XDG_CACHE_HOME/node_repl_history
|
set -gx NODE_REPL_HISTORY $XDG_CACHE_HOME/node_repl_history
|
||||||
set -gx NPM_CONFIG_USERCONFIG $XDG_CONFIG_HOME/npm/npmrc
|
set -gx NPM_CONFIG_USERCONFIG $XDG_CONFIG_HOME/npm/npmrc
|
||||||
set -gx NPM_CONFIG_PREFIX $XDG_DATA_HOME/npm
|
|
||||||
set -gx CARGO_HOME $XDG_DATA_HOME/cargo
|
set -gx CARGO_HOME $XDG_DATA_HOME/cargo
|
||||||
set -gx RUSTUP_HOME $XDG_DATA_HOME/rustup
|
set -gx RUSTUP_HOME $XDG_DATA_HOME/rustup
|
||||||
set -gx BUNDLE_USER_CONFIG $XDG_CONFIG_HOME/bundle
|
set -gx BUNDLE_USER_CONFIG $XDG_CONFIG_HOME/bundle
|
||||||
|
@ -38,6 +37,8 @@ set -gx WGETRC $XDG_CONFIG_HOME/wgetrc
|
||||||
set -gx RIPGREP_CONFIG_PATH $XDG_CONFIG_HOME/ripgrep/config
|
set -gx RIPGREP_CONFIG_PATH $XDG_CONFIG_HOME/ripgrep/config
|
||||||
set -gx GHCUP_USE_XDG_DIRS true
|
set -gx GHCUP_USE_XDG_DIRS true
|
||||||
set -gx STACK_ROOT $XDG_DATA_HOME/stack
|
set -gx STACK_ROOT $XDG_DATA_HOME/stack
|
||||||
|
set -gx CABAL_CONFIG $XDG_CONFIG_HOME/cabal/config
|
||||||
|
set -gx CABAL_DIR $XDG_DATA_HOME/cabal
|
||||||
set -gx SQLITE_HISTORY $XDG_DATA_HOME/sqlite/history
|
set -gx SQLITE_HISTORY $XDG_DATA_HOME/sqlite/history
|
||||||
set -gx TS_NODE_HISTORY $XDG_DATA_HOME/ts-node/history
|
set -gx TS_NODE_HISTORY $XDG_DATA_HOME/ts-node/history
|
||||||
set -gx WINEPREFIX $XDG_DATA_HOME/wine
|
set -gx WINEPREFIX $XDG_DATA_HOME/wine
|
||||||
|
|
|
@ -37,6 +37,7 @@ system_apk_packages:
|
||||||
- buildah
|
- buildah
|
||||||
- buku
|
- buku
|
||||||
- bzip3
|
- bzip3
|
||||||
|
- cabal
|
||||||
- cargo
|
- cargo
|
||||||
- castero
|
- castero
|
||||||
- chafa
|
- chafa
|
||||||
|
@ -98,6 +99,7 @@ system_apk_packages:
|
||||||
- glab
|
- glab
|
||||||
- gnupg-doc
|
- gnupg-doc
|
||||||
- go
|
- go
|
||||||
|
- go-jsonnet
|
||||||
- go-s
|
- go-s
|
||||||
- gocryptfs
|
- gocryptfs
|
||||||
- gojq
|
- gojq
|
||||||
|
@ -152,6 +154,7 @@ system_apk_packages:
|
||||||
- minikube
|
- minikube
|
||||||
- minisign
|
- minisign
|
||||||
- mksh
|
- mksh
|
||||||
|
- monolith
|
||||||
- mopidy
|
- mopidy
|
||||||
- mpc
|
- mpc
|
||||||
- mpd
|
- mpd
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
---
|
||||||
|
- name: packages | Initialize cabal config
|
||||||
|
command:
|
||||||
|
cmd: cabal user-config init
|
||||||
|
creates: '{{ ansible_env.CABAL_CONFIG }}'
|
||||||
|
tags: cabal-init
|
||||||
|
|
||||||
|
- name: packages | Update cabal package list
|
||||||
|
command: cabal update
|
||||||
|
tags: cabal-update
|
||||||
|
|
||||||
|
- name: packages | Install hadolint
|
||||||
|
tags: hadolint
|
||||||
|
command: cabal install hadolint
|
||||||
|
|
||||||
|
# dhall-nix requires libsodium-dev
|
||||||
|
- name: packages | Install dhall packages
|
||||||
|
tags: dhall
|
||||||
|
command: cabal install {{ item }}
|
||||||
|
loop:
|
||||||
|
- dhall
|
||||||
|
- dhall-json
|
||||||
|
- dhall-yaml
|
||||||
|
- dhall-nix
|
||||||
|
- dhall-lsp-server
|
||||||
|
- dhall-docs
|
||||||
|
- dhall-toml
|
||||||
|
- dhall-csv
|
|
@ -18,6 +18,13 @@
|
||||||
NPM_CONFIG_PREFIX: ~/.local/share/npm
|
NPM_CONFIG_PREFIX: ~/.local/share/npm
|
||||||
import_tasks: yarn-packages.yml
|
import_tasks: yarn-packages.yml
|
||||||
|
|
||||||
|
- name: packages | Install Haskell packages with cabal
|
||||||
|
tags: [cabal, haskell]
|
||||||
|
environment:
|
||||||
|
CABAL_CONFIG: '{{ ansible_env.HOME }}/.config/cabal/config'
|
||||||
|
CABAL_DIR: '{{ ansible_env.HOME }}/.local/share/cabal'
|
||||||
|
import_tasks: haskell-packages.yml
|
||||||
|
|
||||||
- name: packages | Install pyenv
|
- name: packages | Install pyenv
|
||||||
tags: pyenv
|
tags: pyenv
|
||||||
environment:
|
environment:
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
FROM haskell:8-slim-buster as builder
|
|
||||||
ARG HADOLINT_VERSION
|
|
||||||
# Install build dependencies
|
|
||||||
RUN apt update && apt upgrade -y \
|
|
||||||
&& apt install -y wget
|
|
||||||
# Download the release
|
|
||||||
RUN wget -q https://github.com/hadolint/hadolint/archive/refs/tags/v${HADOLINT_VERSION}.tar.gz \
|
|
||||||
&& tar x -zf v${HADOLINT_VERSION}.tar.gz \
|
|
||||||
&& mv hadolint-${HADOLINT_VERSION} hadolint
|
|
||||||
# Build
|
|
||||||
WORKDIR /hadolint
|
|
||||||
RUN stack build hadolint \
|
|
||||||
&& mv .stack-work/install/*/*/*/bin/hadolint /bin/hadolint
|
|
||||||
|
|
||||||
FROM busybox:stable-musl
|
|
||||||
COPY --from=builder /bin/hadolint /hadolint
|
|
||||||
# Create a normal user
|
|
||||||
RUN adduser -D -s /bin/nologin -H -h /dev/null hadolint
|
|
||||||
USER hadolint
|
|
||||||
# Entrypoint
|
|
||||||
ENTRYPOINT ["/hadolint"]
|
|
|
@ -1,4 +1,3 @@
|
||||||
---
|
---
|
||||||
hadolint_version: 2.10.0
|
|
||||||
ltex_version: 15.2.0
|
ltex_version: 15.2.0
|
||||||
translate_shell_version: 0.9.7
|
translate_shell_version: 0.9.7
|
||||||
|
|
|
@ -1,27 +1,4 @@
|
||||||
---
|
---
|
||||||
- block:
|
|
||||||
- name: podman | Build hadolint container image
|
|
||||||
podman_image:
|
|
||||||
name: hadolint
|
|
||||||
build:
|
|
||||||
extra_args: '--build-arg HADOLINT_VERSION={{ hadolint_version }}'
|
|
||||||
path: '{{ role_path }}/build_dirs/hadolint'
|
|
||||||
tag: '{{ hadolint_version }}'
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: podman | Install hadolint wrapper script
|
|
||||||
template:
|
|
||||||
src: hadolint.j2
|
|
||||||
dest: ~/.local/bin/hadolint
|
|
||||||
mode: 0755
|
|
||||||
|
|
||||||
- name: podman | Install hadolint wrapper script for Neovim
|
|
||||||
template:
|
|
||||||
src: hadolint-nvim-null_ls.j2
|
|
||||||
dest: ~/.config/nvim/scripts/hadolint
|
|
||||||
mode: 0755
|
|
||||||
tags: hadolint
|
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: podman | Build ltex-ls container image
|
- name: podman | Build ltex-ls container image
|
||||||
podman_image:
|
podman_image:
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
podman run \
|
|
||||||
--cap-drop ALL \
|
|
||||||
--security-opt no-new-privileges \
|
|
||||||
--read-only \
|
|
||||||
--rm --interactive \
|
|
||||||
localhost/hadolint:{{ hadolint_version }} --no-fail --format=json - < "$@"
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
podman run \
|
|
||||||
--cap-drop ALL \
|
|
||||||
--security-opt no-new-privileges \
|
|
||||||
--read-only \
|
|
||||||
--rm --interactive \
|
|
||||||
localhost/hadolint:{{ hadolint_version }} "$@"
|
|
Loading…
Reference in New Issue