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
|
||||
tmp=${XDG_RUNTIME_DIR}/npm
|
||||
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js
|
||||
|
|
|
@ -9,7 +9,6 @@ local M = {
|
|||
|
||||
-- Plugins loaded on startup
|
||||
['lewis6991/impatient.nvim'] = { opt = false },
|
||||
['antoinemadec/FixCursorHold.nvim'] = { opt = false },
|
||||
['folke/which-key.nvim'] = {
|
||||
config = function()
|
||||
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['mracos/mermaid.vim'] = { ft = 'mermaid' }
|
||||
M['tsandall/vim-rego'] = { ft = 'rego' }
|
||||
M['vmchale/dhall-vim'] = { ft = 'dhall' }
|
||||
|
||||
M['NvChad/nvim-colorizer.lua'] = {
|
||||
cmd = 'ColorizerToggle',
|
||||
|
|
|
@ -109,21 +109,21 @@ local lsp_servers = {
|
|||
},
|
||||
},
|
||||
},
|
||||
yamlls = {
|
||||
cmd = { servers_path .. '/yamlls/node_modules/.bin/yaml-language-server', '--stdio' },
|
||||
settings = {
|
||||
redhat = { telemetry = { enabled = false } },
|
||||
yaml = {
|
||||
format = {
|
||||
bracketSpacing = true,
|
||||
printWidth = 80,
|
||||
-- proseWrap = 'always', -- default is 'preserve'
|
||||
-- singleQuote = true,
|
||||
},
|
||||
schemas = require('schemastore').json.schemas(),
|
||||
},
|
||||
},
|
||||
},
|
||||
-- yamlls = {
|
||||
-- cmd = { servers_path .. '/yamlls/node_modules/.bin/yaml-language-server', '--stdio' },
|
||||
-- settings = {
|
||||
-- redhat = { telemetry = { enabled = false } },
|
||||
-- yaml = {
|
||||
-- format = {
|
||||
-- bracketSpacing = true,
|
||||
-- printWidth = 80,
|
||||
-- -- proseWrap = 'always', -- default is 'preserve'
|
||||
-- -- singleQuote = true,
|
||||
-- },
|
||||
-- schemas = require('schemastore').json.schemas(),
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
ansiblels = {
|
||||
cmd = { servers_path .. '/ansiblels/node_modules/.bin/ansible-language-server', '--stdio' },
|
||||
filetypes = { 'yaml' },
|
||||
|
@ -301,6 +301,7 @@ local lsp_servers = {
|
|||
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' } },
|
||||
jsonnet_ls = { cmd = { servers_path .. '/jsonnet_ls/jsonnet-language-server' } },
|
||||
dhall_lsp_server = {},
|
||||
}
|
||||
|
||||
local function lsp_init()
|
||||
|
|
|
@ -56,10 +56,7 @@ local sources = {
|
|||
return utils.root_has_file(potential_cspell_files)
|
||||
end,
|
||||
},
|
||||
hadolint = {
|
||||
command = vim.fn.stdpath('config') .. '/scripts/hadolint',
|
||||
args = { '$FILENAME' },
|
||||
},
|
||||
'hadolint',
|
||||
-- 'luacheck',
|
||||
'cppcheck',
|
||||
-- gitlint = { command = linters_path .. '/gitlint/venv/bin/gitlint' },
|
||||
|
|
|
@ -10,11 +10,13 @@ abbr kn kubens
|
|||
abbr t terraform
|
||||
|
||||
# remap
|
||||
alias cp='cp -vir'
|
||||
alias mv='mv -vi'
|
||||
alias rm='rm -vr'
|
||||
alias mkdir='mkdir -vp'
|
||||
alias cp 'cp -vir'
|
||||
alias mv 'mv -vi'
|
||||
alias rm 'rm -vr'
|
||||
alias mkdir 'mkdir -vp'
|
||||
{% if multiplexer == 'tmux' %}
|
||||
|
||||
# true color in tmux pane
|
||||
abbr tmux 'TERM=screen-256color command tmux'
|
||||
{% endif %}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ status is-login; and umask {{ umask }}
|
|||
|
||||
# PATH
|
||||
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
|
||||
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 NODE_REPL_HISTORY $XDG_CACHE_HOME/node_repl_history
|
||||
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 RUSTUP_HOME $XDG_DATA_HOME/rustup
|
||||
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 GHCUP_USE_XDG_DIRS true
|
||||
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 TS_NODE_HISTORY $XDG_DATA_HOME/ts-node/history
|
||||
set -gx WINEPREFIX $XDG_DATA_HOME/wine
|
||||
|
|
|
@ -37,6 +37,7 @@ system_apk_packages:
|
|||
- buildah
|
||||
- buku
|
||||
- bzip3
|
||||
- cabal
|
||||
- cargo
|
||||
- castero
|
||||
- chafa
|
||||
|
@ -98,6 +99,7 @@ system_apk_packages:
|
|||
- glab
|
||||
- gnupg-doc
|
||||
- go
|
||||
- go-jsonnet
|
||||
- go-s
|
||||
- gocryptfs
|
||||
- gojq
|
||||
|
@ -152,6 +154,7 @@ system_apk_packages:
|
|||
- minikube
|
||||
- minisign
|
||||
- mksh
|
||||
- monolith
|
||||
- mopidy
|
||||
- mpc
|
||||
- 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
|
||||
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
|
||||
tags: pyenv
|
||||
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
|
||||
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:
|
||||
- name: podman | Build ltex-ls container 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