1{
2 lib,
3 python3Packages,
4 fetchFromGitHub,
5 meson,
6 ninja,
7 pkg-config,
8 gobject-introspection,
9 blueprint-compiler,
10 wrapGAppsHook4,
11 desktop-file-utils,
12 libadwaita,
13 gtksourceview5,
14 webkitgtk_6_0,
15 gcr_4,
16 gdk-pixbuf,
17 autoPatchelfHook,
18 appstream,
19 libxml2,
20}:
21python3Packages.buildPythonApplication rec {
22 pname = "devtoolbox";
23 version = "1.3.0";
24 pyproject = false; # uses meson
25
26 src = fetchFromGitHub {
27 owner = "aleiepure";
28 repo = "devtoolbox";
29 tag = "v${version}";
30 hash = "sha256-ReF70pNMrMweEB4WAGQT++9TxTN4gV1olln7Y6YWCis=";
31 };
32
33 # test after update
34 postPatch = ''
35 substituteInPlace src/views/reverse_cron.py \
36 --replace-fail '"\D"' 'r"\D"'
37 '';
38
39 nativeBuildInputs = [
40 meson
41 ninja
42 pkg-config
43 gobject-introspection
44 blueprint-compiler
45 wrapGAppsHook4
46 desktop-file-utils
47 autoPatchelfHook
48 appstream
49 libxml2
50 ];
51
52 buildInputs = [
53 libadwaita
54 gtksourceview5
55 webkitgtk_6_0
56 gcr_4
57 gdk-pixbuf
58 ];
59
60 dependencies = with python3Packages; [
61 pygobject3
62 ruamel-yaml
63 lxml
64 python-crontab
65 jwt
66 jsonschema
67 pytz
68 tzlocal
69 python-lorem
70 uuid6
71 textstat
72 markdown2
73 daltonlens
74 asn1crypto
75 qrcode
76 sqlparse
77 jsbeautifier
78 cssbeautifier
79 humanize
80 croniter
81 python-dateutil
82 rcssmin
83 rjsmin
84 cryptography
85 color-parser-py
86 ];
87
88 dontWrapGApps = true;
89
90 # Contains an unusable devtoolbox-run-script
91 postInstall = ''
92 rm -r $out/devtoolbox
93 ln -s $out/share/locale/zh_Hant $out/share/locale/zh_TW
94 ln -s $out/share/locale/zh_Hans $out/share/locale/zh_CN
95 '';
96
97 preFixup = ''
98 makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
99 '';
100
101 meta = {
102 description = "Development tools at your fingertips";
103 longDescription = ''
104 If you're tired of endlessly looking online for the right
105 tool, or to find again that website of which you don't
106 recall the name to do a quick conversion, this is the
107 right app for you. This is a collection of powerful yet
108 simple-to-use tools and utilities to solve the most common
109 daily development problems:
110 - JSON to YAML converter and vice-versa
111 - CRON expressions parser
112 - Formatters for common languages
113 - Hash generators
114 - Regex tester
115 - Markdown Previewer
116 - Image converters
117 - Much more...
118 '';
119 homepage = "https://github.com/aleiepure/devtoolbox";
120 license = with lib.licenses; [
121 gpl3Plus
122 cc0
123 lgpl3Only
124 mit
125 unlicense
126 ];
127 mainProgram = "devtoolbox";
128 maintainers = with lib.maintainers; [ aleksana ];
129 platforms = lib.platforms.linux;
130 };
131}