aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/nixpkgs/config.nix11
-rw-r--r--.config/nixpkgs/packages/ruamel.yaml.cmd/default.nix68
-rw-r--r--.config/yamllint/config32
-rw-r--r--.vimrc3
4 files changed, 111 insertions, 3 deletions
diff --git a/.config/nixpkgs/config.nix b/.config/nixpkgs/config.nix
index 15dd1ac..8576a48 100644
--- a/.config/nixpkgs/config.nix
+++ b/.config/nixpkgs/config.nix
@@ -286,8 +286,7 @@ in
Python = pkgs.buildEnv {
name = "python";
paths = [
- (python38.withPackages
- (ps: with ps; [ mypy bandit pylint pip2nix pyflakes ]))
+ (python38.withPackages (ps: with ps; [ mypy bandit pylint pip2nix pyflakes ]))
];
};
@@ -369,5 +368,13 @@ in
csslint
];
};
+
+ YAML = pkgs.buildEnv {
+ name = "yaml";
+ paths = [
+ (callPackage ./packages/ruamel.yaml.cmd/default.nix {})
+ python38Packages.yamllint
+ ];
+ };
};
}
diff --git a/.config/nixpkgs/packages/ruamel.yaml.cmd/default.nix b/.config/nixpkgs/packages/ruamel.yaml.cmd/default.nix
new file mode 100644
index 0000000..f0ca9f6
--- /dev/null
+++ b/.config/nixpkgs/packages/ruamel.yaml.cmd/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, python38 }:
+
+with python38.pkgs;
+
+let
+
+ meta = with stdenv.lib; {
+ license = licenses.mit;
+ description = "Command line utility to manipulate YAML files";
+ homepage = "https://sourceforge.net/p/ruamel-yaml-cmd/code/ci/default/tree";
+ };
+
+ ruamel.std.argparse = buildPythonPackage rec {
+ pname = "ruamel.std.argparse";
+ version = "0.8.3";
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0srv4g6jryyaz26csx315pbmfhm4rw8jhfsl7rq7krrglgqwjryi";
+ };
+ doCheck = false;
+ inherit meta;
+ };
+
+ ruamel.std.convert = buildPythonPackage rec {
+ pname = "ruamel.yaml.convert";
+ version = "0.3.2";
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1i6919b5f5ygj7y7c4x0wi91n8y0mw4nf9f0bcfjk29i594xjph6";
+ };
+ propagatedBuildInputs = [ python-dateutil ruamel_yaml ];
+ doCheck = false;
+ inherit meta;
+ };
+
+ ruamel.yaml.cmd = buildPythonPackage rec {
+ pname = "ruamel.yaml.cmd";
+ version = "0.5.6";
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0zc2h6b721r8c05dm7y8zgrgbvifbgcm8jmqvns7ar4ajll3cvwv";
+ };
+ propagatedBuildInputs = [ configobj ruamel.std.argparse ruamel.std.convert ];
+ doCheck = false;
+ dontWrapPythonPrograms = true;
+ inherit meta;
+ };
+
+in buildPythonApplication rec {
+
+ pname = ruamel.yaml.cmd.pname;
+ version = ruamel.yaml.cmd.version;
+ propagatedBuildInputs = [ ruamel.yaml.cmd ];
+ pythonEnvironment = python38.withPackages (_: propagatedBuildInputs);
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/bin
+ cp ${ruamel.yaml.cmd}/bin/yaml $out/bin
+ sed -i 's|^#!.*$|#!${pythonEnvironment}/bin/python3.8|' $out/bin/yaml
+ runHook postInstall
+ '';
+
+ dontUnpack = true;
+ dontBuild = true;
+ doCheck = false;
+ inherit meta;
+}
diff --git a/.config/yamllint/config b/.config/yamllint/config
new file mode 100644
index 0000000..2e4932f
--- /dev/null
+++ b/.config/yamllint/config
@@ -0,0 +1,32 @@
+---
+yaml-files:
+- '*.yaml'
+- '*.yml'
+- .yamllint
+
+rules:
+ braces: enable
+ brackets: enable
+ colons: enable
+ commas: enable
+ comments:
+ level: warning
+ comments-indentation:
+ level: warning
+ document-end: disable
+ document-start:
+ level: warning
+ empty-lines: enable
+ empty-values: disable
+ hyphens: enable
+ indentation: disable
+ key-duplicates: enable
+ key-ordering: disable
+ line-length: enable
+ new-line-at-end-of-file: enable
+ new-lines: enable
+ octal-values: disable
+ quoted-strings: disable
+ trailing-spaces: enable
+ truthy:
+ level: warning
diff --git a/.vimrc b/.vimrc
index 5512427..632d9fc 100644
--- a/.vimrc
+++ b/.vimrc
@@ -100,6 +100,7 @@ endfunction
" Ansible Check
function! AnsibleCheck()
:silent !notify-send -t 10000 "$(ansible-playbook --syntax-check % 2>&1)" > /dev/null 2>&1 &
+ :redraw!
endfunction
" Shell Check
@@ -302,7 +303,6 @@ augroup AutoCommands
" Linting extension post write commands.
autocmd BufWritePost *.php :call PHPFix()
autocmd BufWritePost *.js :call ESLintFix()
- autocmd BufWritePost *.yml :call AnsibleCheck()
autocmd BufWritePost *.txt,*.md :only | :term ++rows=10 vale-wrapper %
" Linting file type post write commands.
@@ -314,6 +314,7 @@ augroup AutoCommands
autocmd FileType c autocmd! BufWritePost <buffer> silent !notify-send "$(clang-format -i % 2>&1 && echo 'clang-format OK:' %)"
autocmd FileType go autocmd! BufWritePost <buffer> silent !notify-send "$(gofmt -w -s -e % 2>&1 && go vet % 2>&1 && echo 'gofmt OK:' %)"
autocmd FileType awk autocmd! BufWritePost <buffer> silent !notify-send "$(awk -g -f % 2>&1 && awk -o- -f % | sponge % && echo 'awk OK:' %)"
+ autocmd FileType yaml autocmd! BufWritePost <buffer> silent !notify-send "$(yaml round-trip --indent 2 --save % 2>&1 && yamllint -s % 2>&1 && echo 'yaml OK: %')"
" File type function under cursor lookups.
autocmd FileType go noremap <buffer> <leader>df :exe ':term ++rows=10 go doc ' . expand('<cexpr>')<cr>