aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/nixpkgs/config.nix7
-rw-r--r--.config/nixpkgs/packages/skeema/default.nix23
-rw-r--r--.config/nixpkgs/packages/sqldef/default.nix23
-rw-r--r--.config/nixpkgs/packages/sqlfluff/default.nix58
-rw-r--r--.vimrc1
5 files changed, 111 insertions, 1 deletions
diff --git a/.config/nixpkgs/config.nix b/.config/nixpkgs/config.nix
index ff37c35..e82e58c 100644
--- a/.config/nixpkgs/config.nix
+++ b/.config/nixpkgs/config.nix
@@ -183,7 +183,6 @@ in
sigil
skippy-xd
spaceFM
- sqlitebrowser
sublime3-dev
sxiv
syncthing
@@ -417,7 +416,13 @@ in
SQL = pkgs.buildEnv {
name = "sql";
paths = [
+ (callPackage ./packages/skeema/default.nix {})
+ (callPackage ./packages/sqldef/default.nix {})
+ (callPackage ./packages/sqlfluff/default.nix {})
+ dbeaver
+ pgformatter
sqlint
+ sqlite
];
};
diff --git a/.config/nixpkgs/packages/skeema/default.nix b/.config/nixpkgs/packages/skeema/default.nix
new file mode 100644
index 0000000..4017f75
--- /dev/null
+++ b/.config/nixpkgs/packages/skeema/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchgit, buildGoModule }:
+
+buildGoModule rec {
+ pname = "skeema";
+ version = "v1.5.0";
+ url = "https://github.com/skeema/skeema";
+
+ src = fetchgit {
+ inherit url;
+ rev = version;
+ sha256 = "0mrspmgiww0jlpml24r5f4ail8153f2liva88w9760fd5aky3ix3";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = url;
+ license = licenses.asl20;
+ description = "Schema management CLI for MySQL";
+ };
+}
diff --git a/.config/nixpkgs/packages/sqldef/default.nix b/.config/nixpkgs/packages/sqldef/default.nix
new file mode 100644
index 0000000..6829f00
--- /dev/null
+++ b/.config/nixpkgs/packages/sqldef/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchgit, buildGoModule }:
+
+buildGoModule rec {
+ pname = "sqldef";
+ version = "v0.8.9";
+ url = "https://github.com/k0kubun/sqldef";
+
+ src = fetchgit {
+ inherit url;
+ rev = version;
+ sha256 = "1hvx05qwy2g4r1zc1k2f9xv4z815p5jh1a6g41fdlxskjl3kyyf5";
+ };
+
+ vendorSha256 = "066184zmwdhd8dbkbmwds8aimiawfcvb8px8z1q48c949gvywlx7";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = url;
+ license = licenses.mit;
+ description = "Idempotent MySQL/PostgreSQL schema management by SQL";
+ };
+}
diff --git a/.config/nixpkgs/packages/sqlfluff/default.nix b/.config/nixpkgs/packages/sqlfluff/default.nix
new file mode 100644
index 0000000..0030d31
--- /dev/null
+++ b/.config/nixpkgs/packages/sqlfluff/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchgit, python36 }:
+
+with python36.pkgs;
+
+let
+
+ bench-it = buildPythonPackage rec {
+ pname = "bench-it";
+ version = "1.0.1";
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0v6kfvgdnjlfmwlafmyjadgllfr8qc1hq83kz9q287gh5nvw851f";
+ };
+ postPatch = ''
+ # Avoid building pypandoc
+ sed -i 's|^import pypandoc.*||' setup.py
+ sed -i 's|^description = pypandoc.*|description = ""|' setup.py
+ '';
+ doCheck = false;
+ };
+
+in buildPythonApplication rec {
+
+ pname = "sqlfluff";
+ url = "https://github.com/sqlfluff/sqlfluff";
+ version = "0.4.1";
+
+ src = fetchgit {
+ inherit url;
+ rev = version;
+ sha256 = "0g53rhdg8b2p3xx9rmkc2fkqnz4fsrmkg98n5fi10s16wscn90kz";
+ };
+
+ propagatedBuildInputs = [
+ appdirs
+ bench-it
+ cached-property
+ click
+ colorama
+ configparser
+ dataclasses
+ diff_cover
+ jinja2
+ oyaml
+ pathspec
+ pluggy
+ typing-extensions
+ ];
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = url;
+ license = licenses.mit;
+ platforms = platforms.linux;
+ description = "A SQL linter and auto-formatter for Humans";
+ };
+}
diff --git a/.vimrc b/.vimrc
index 21cbf26..cb49e31 100644
--- a/.vimrc
+++ b/.vimrc
@@ -303,6 +303,7 @@ augroup AutoCommands
autocmd FileType nix autocmd! BufWritePost <buffer> silent exe '!' . expand(g:notify) . ' ' . '"$(nix-linter % 2>&1 && echo ''Nix Lint OK: %'' && nixfmt % 2>&1)" > /dev/null 2>&1'
autocmd FileType yaml autocmd! BufWritePost <buffer> silent exe '!' . expand(g:notify) . ' ' . '"$(yaml round-trip --indent 2 --save % 2>&1 && yamllint -s % 2>&1 && echo ''yaml OK: %'')"'
autocmd FileType bash,sh autocmd! BufWritePost <buffer> silent exe '!' . expand(g:notify) . ' ' . '"$(shellcheck -x --exclude=SC1090,SC1091 % 2>&1 && echo ''Shellcheck OK: %'')" > /dev/null 2>&1 &'
+ autocmd FileType sql autocmd! BufWritePost <buffer> silent exe '!' . expand(g:notify) . ' ' . '"$(sqlint % 2>&1 && pg_format -i % 2>&1 && sqlfluff lint --exclude-rules L003,L016 --dialect postgres % 2>&1 && echo ''SQL OK: %'')"'
" File type function under cursor lookups.
autocmd FileType go noremap <buffer> <leader>df :exe ':term ++rows=10 go doc ' . expand('<cexpr>')<cr>