1{
2 lib,
3 fetchFromGitHub,
4 python3Packages,
5 writableTmpDirAsHomeHook,
6}:
7
8python3Packages.buildPythonApplication rec {
9 pname = "mycli";
10 version = "1.31.2";
11 pyproject = true;
12
13 src = fetchFromGitHub {
14 owner = "dbcli";
15 repo = "mycli";
16 tag = "v${version}";
17 hash = "sha256-s5PzWrxG2z0sOyQIyACLkG7dau+MHYLtLNLig6UfuCs=";
18 };
19
20 pythonRelaxDeps = [
21 "sqlparse"
22 "click"
23 ];
24
25 build-system = with python3Packages; [
26 setuptools
27 setuptools-scm
28 ];
29
30 dependencies =
31 with python3Packages;
32 [
33 cli-helpers
34 click
35 configobj
36 cryptography
37 paramiko
38 prompt-toolkit
39 pyaes
40 pygments
41 pymysql
42 pyperclip
43 sqlglot
44 sqlparse
45 pyfzf
46 ]
47 ++ cli-helpers.optional-dependencies.styles;
48
49 nativeCheckInputs = [ writableTmpDirAsHomeHook ] ++ (with python3Packages; [ pytestCheckHook ]);
50
51 disabledTestPaths = [
52 "mycli/packages/paramiko_stub/__init__.py"
53 ];
54
55 meta = {
56 description = "Command-line interface for MySQL";
57 mainProgram = "mycli";
58 longDescription = ''
59 Rich command-line interface for MySQL with auto-completion and
60 syntax highlighting.
61 '';
62 homepage = "http://mycli.net";
63 license = lib.licenses.bsd3;
64 maintainers = with lib.maintainers; [ jojosch ];
65 };
66}