aboutsummaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
authortdro <tdro@users.noreply.github.com>2020-12-14 21:37:15 -0500
committertdro <tdro@users.noreply.github.com>2020-12-14 21:40:07 -0500
commitdceea6915aa54cb1e0b69c8c85a20e4b8bd2b85c (patch)
treeb7a53282788d20ab78427237f7d86259974003e4 /.config
parentf85adb0dc8728ffbf389901f65af8e7fcd8f30db (diff)
downloaddotfiles-dceea6915aa54cb1e0b69c8c85a20e4b8bd2b85c.tar.gz
dotfiles-dceea6915aa54cb1e0b69c8c85a20e4b8bd2b85c.tar.bz2
dotfiles-dceea6915aa54cb1e0b69c8c85a20e4b8bd2b85c.zip
.vimrc: Add yaml round trip linter
Diffstat (limited to '.config')
-rw-r--r--.config/nixpkgs/config.nix11
-rw-r--r--.config/nixpkgs/packages/ruamel.yaml.cmd/default.nix68
-rw-r--r--.config/yamllint/config32
3 files changed, 109 insertions, 2 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