packages: add Haskell packages

Use cabal to build hadolint instead of using a container
This commit is contained in:
Hoang Nguyen 2022-09-20 23:10:57 +07:00
parent f9498a3926
commit 730113a3c5
No known key found for this signature in database
GPG Key ID: 813CF484F4993419
16 changed files with 66 additions and 88 deletions

View File

@ -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

View File

@ -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')

View File

@ -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',

View File

@ -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()

View File

@ -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' },

View File

@ -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 %}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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"]

View File

@ -1,4 +1,3 @@
---
hadolint_version: 2.10.0
ltex_version: 15.2.0
translate_shell_version: 0.9.7

View File

@ -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:

View File

@ -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 - < "$@"

View File

@ -1,8 +0,0 @@
#!/bin/sh
podman run \
--cap-drop ALL \
--security-opt no-new-privileges \
--read-only \
--rm --interactive \
localhost/hadolint:{{ hadolint_version }} "$@"