distroscript 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
schema.json ADDED
@@ -0,0 +1,560 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "DistroScript Configuration Schema",
4
+ "description": "Schema for distroscript YAML configuration files",
5
+ "type": "object",
6
+ "patternProperties": {
7
+ "^[a-zA-Z0-9_-]+$": {
8
+ "type": "array",
9
+ "description": "List of installation methods for this package",
10
+ "minItems": 1,
11
+ "items": {
12
+ "oneOf": [
13
+ {
14
+ "type": "string",
15
+ "description": "Simple type specification (e.g., 'apt', 'dnf')"
16
+ },
17
+ {
18
+ "$ref": "#/definitions/aptPackage"
19
+ },
20
+ {
21
+ "$ref": "#/definitions/dnfPackage"
22
+ },
23
+ {
24
+ "$ref": "#/definitions/debPackage"
25
+ },
26
+ {
27
+ "$ref": "#/definitions/snapdPackage"
28
+ },
29
+ {
30
+ "$ref": "#/definitions/flatpakPackage"
31
+ },
32
+ {
33
+ "$ref": "#/definitions/pipPackage"
34
+ },
35
+ {
36
+ "$ref": "#/definitions/tarPackage"
37
+ },
38
+ {
39
+ "$ref": "#/definitions/zipPackage"
40
+ },
41
+ {
42
+ "$ref": "#/definitions/githubPackage"
43
+ },
44
+ {
45
+ "$ref": "#/definitions/filePackage"
46
+ },
47
+ {
48
+ "$ref": "#/definitions/shellPackage"
49
+ },
50
+ {
51
+ "$ref": "#/definitions/appimagePackage"
52
+ }
53
+ ]
54
+ }
55
+ }
56
+ },
57
+ "additionalProperties": false,
58
+ "definitions": {
59
+ "commandList": {
60
+ "oneOf": [
61
+ {
62
+ "type": "string"
63
+ },
64
+ {
65
+ "type": "array",
66
+ "items": {
67
+ "oneOf": [
68
+ {
69
+ "type": "string"
70
+ },
71
+ {
72
+ "$ref": "#/definitions/shellCommand"
73
+ },
74
+ {
75
+ "$ref": "#/definitions/teeCommand"
76
+ }
77
+ ]
78
+ }
79
+ }
80
+ ]
81
+ },
82
+ "shellCommand": {
83
+ "type": "object",
84
+ "required": ["type", "command"],
85
+ "properties": {
86
+ "type": {
87
+ "const": "shell"
88
+ },
89
+ "command": {
90
+ "type": "string"
91
+ }
92
+ },
93
+ "additionalProperties": false
94
+ },
95
+ "teeCommand": {
96
+ "type": "object",
97
+ "required": ["type", "content", "destination"],
98
+ "properties": {
99
+ "type": {
100
+ "const": "tee"
101
+ },
102
+ "content": {
103
+ "type": "string"
104
+ },
105
+ "destination": {
106
+ "type": "string"
107
+ },
108
+ "sudo": {
109
+ "type": "boolean"
110
+ },
111
+ "append": {
112
+ "type": "boolean"
113
+ },
114
+ "mkdir": {
115
+ "type": "boolean"
116
+ }
117
+ },
118
+ "additionalProperties": false
119
+ },
120
+ "dependencyList": {
121
+ "type": "array",
122
+ "items": {
123
+ "oneOf": [
124
+ {
125
+ "type": "string"
126
+ },
127
+ {
128
+ "type": "object",
129
+ "required": ["type"],
130
+ "properties": {
131
+ "type": {
132
+ "type": "string"
133
+ },
134
+ "packages": {
135
+ "type": "array",
136
+ "items": {
137
+ "type": "string"
138
+ }
139
+ }
140
+ }
141
+ }
142
+ ]
143
+ }
144
+ },
145
+ "aptPackage": {
146
+ "type": "object",
147
+ "required": ["type"],
148
+ "properties": {
149
+ "type": {
150
+ "const": "apt"
151
+ },
152
+ "packages": {
153
+ "type": "array",
154
+ "items": {
155
+ "type": "string"
156
+ }
157
+ },
158
+ "flags": {
159
+ "type": "array",
160
+ "items": {
161
+ "type": "string"
162
+ }
163
+ },
164
+ "sudo": {
165
+ "type": "boolean"
166
+ },
167
+ "depends_on": {
168
+ "$ref": "#/definitions/dependencyList"
169
+ },
170
+ "pre_install": {
171
+ "$ref": "#/definitions/commandList"
172
+ },
173
+ "post_install": {
174
+ "$ref": "#/definitions/commandList"
175
+ }
176
+ },
177
+ "additionalProperties": false
178
+ },
179
+ "dnfPackage": {
180
+ "type": "object",
181
+ "required": ["type"],
182
+ "properties": {
183
+ "type": {
184
+ "const": "dnf"
185
+ },
186
+ "packages": {
187
+ "type": "array",
188
+ "items": {
189
+ "type": "string"
190
+ }
191
+ },
192
+ "flags": {
193
+ "type": "array",
194
+ "items": {
195
+ "type": "string"
196
+ }
197
+ },
198
+ "sudo": {
199
+ "type": "boolean"
200
+ },
201
+ "repofile": {
202
+ "type": "string"
203
+ },
204
+ "repo": {
205
+ "type": "string"
206
+ },
207
+ "copr": {
208
+ "type": "string"
209
+ },
210
+ "depends_on": {
211
+ "$ref": "#/definitions/dependencyList"
212
+ },
213
+ "pre_install": {
214
+ "$ref": "#/definitions/commandList"
215
+ },
216
+ "post_install": {
217
+ "$ref": "#/definitions/commandList"
218
+ }
219
+ },
220
+ "additionalProperties": false
221
+ },
222
+ "debPackage": {
223
+ "type": "object",
224
+ "required": ["type"],
225
+ "properties": {
226
+ "type": {
227
+ "const": "deb"
228
+ },
229
+ "packages": {
230
+ "type": "array",
231
+ "items": {
232
+ "type": "string"
233
+ }
234
+ },
235
+ "flags": {
236
+ "type": "array",
237
+ "items": {
238
+ "type": "string"
239
+ }
240
+ },
241
+ "sudo": {
242
+ "type": "boolean"
243
+ },
244
+ "depends_on": {
245
+ "$ref": "#/definitions/dependencyList"
246
+ },
247
+ "pre_install": {
248
+ "$ref": "#/definitions/commandList"
249
+ },
250
+ "post_install": {
251
+ "$ref": "#/definitions/commandList"
252
+ }
253
+ },
254
+ "additionalProperties": false
255
+ },
256
+ "snapdPackage": {
257
+ "type": "object",
258
+ "required": ["type"],
259
+ "properties": {
260
+ "type": {
261
+ "const": "snapd"
262
+ },
263
+ "packages": {
264
+ "type": "array",
265
+ "items": {
266
+ "type": "string"
267
+ }
268
+ },
269
+ "flags": {
270
+ "type": "array",
271
+ "items": {
272
+ "type": "string"
273
+ }
274
+ },
275
+ "sudo": {
276
+ "type": "boolean"
277
+ },
278
+ "classic": {
279
+ "type": "boolean"
280
+ },
281
+ "depends_on": {
282
+ "$ref": "#/definitions/dependencyList"
283
+ },
284
+ "pre_install": {
285
+ "$ref": "#/definitions/commandList"
286
+ },
287
+ "post_install": {
288
+ "$ref": "#/definitions/commandList"
289
+ }
290
+ },
291
+ "additionalProperties": false
292
+ },
293
+ "flatpakPackage": {
294
+ "type": "object",
295
+ "required": ["type"],
296
+ "properties": {
297
+ "type": {
298
+ "const": "flatpak"
299
+ },
300
+ "packages": {
301
+ "type": "array",
302
+ "items": {
303
+ "type": "string"
304
+ }
305
+ },
306
+ "flags": {
307
+ "type": "array",
308
+ "items": {
309
+ "type": "string"
310
+ }
311
+ },
312
+ "sudo": {
313
+ "type": "boolean"
314
+ },
315
+ "remote": {
316
+ "type": "string"
317
+ },
318
+ "depends_on": {
319
+ "$ref": "#/definitions/dependencyList"
320
+ },
321
+ "pre_install": {
322
+ "$ref": "#/definitions/commandList"
323
+ },
324
+ "post_install": {
325
+ "$ref": "#/definitions/commandList"
326
+ }
327
+ },
328
+ "additionalProperties": false
329
+ },
330
+ "pipPackage": {
331
+ "type": "object",
332
+ "required": ["type"],
333
+ "properties": {
334
+ "type": {
335
+ "const": "pip"
336
+ },
337
+ "packages": {
338
+ "type": "array",
339
+ "items": {
340
+ "type": "string"
341
+ }
342
+ },
343
+ "flags": {
344
+ "type": "array",
345
+ "items": {
346
+ "type": "string"
347
+ }
348
+ },
349
+ "sudo": {
350
+ "type": "boolean"
351
+ },
352
+ "depends_on": {
353
+ "$ref": "#/definitions/dependencyList"
354
+ },
355
+ "pre_install": {
356
+ "$ref": "#/definitions/commandList"
357
+ },
358
+ "post_install": {
359
+ "$ref": "#/definitions/commandList"
360
+ }
361
+ },
362
+ "additionalProperties": false
363
+ },
364
+ "tarPackage": {
365
+ "type": "object",
366
+ "required": ["type", "url", "destination"],
367
+ "properties": {
368
+ "type": {
369
+ "const": "tar"
370
+ },
371
+ "url": {
372
+ "type": "string"
373
+ },
374
+ "destination": {
375
+ "type": "string"
376
+ },
377
+ "sudo": {
378
+ "type": "boolean"
379
+ },
380
+ "depends_on": {
381
+ "$ref": "#/definitions/dependencyList"
382
+ },
383
+ "pre_install": {
384
+ "$ref": "#/definitions/commandList"
385
+ },
386
+ "post_install": {
387
+ "$ref": "#/definitions/commandList"
388
+ }
389
+ },
390
+ "additionalProperties": false
391
+ },
392
+ "zipPackage": {
393
+ "type": "object",
394
+ "required": ["type", "url", "destination"],
395
+ "properties": {
396
+ "type": {
397
+ "const": "zip"
398
+ },
399
+ "url": {
400
+ "type": "string"
401
+ },
402
+ "destination": {
403
+ "type": "string"
404
+ },
405
+ "sudo": {
406
+ "type": "boolean"
407
+ },
408
+ "depends_on": {
409
+ "$ref": "#/definitions/dependencyList"
410
+ },
411
+ "pre_install": {
412
+ "$ref": "#/definitions/commandList"
413
+ },
414
+ "post_install": {
415
+ "$ref": "#/definitions/commandList"
416
+ }
417
+ },
418
+ "additionalProperties": false
419
+ },
420
+ "githubPackage": {
421
+ "type": "object",
422
+ "required": ["type", "repository", "install"],
423
+ "properties": {
424
+ "type": {
425
+ "const": "github"
426
+ },
427
+ "repository": {
428
+ "type": "string"
429
+ },
430
+ "install": {
431
+ "type": "string"
432
+ },
433
+ "depends_on": {
434
+ "$ref": "#/definitions/dependencyList"
435
+ },
436
+ "pre_install": {
437
+ "$ref": "#/definitions/commandList"
438
+ },
439
+ "post_install": {
440
+ "$ref": "#/definitions/commandList"
441
+ }
442
+ },
443
+ "additionalProperties": false
444
+ },
445
+ "filePackage": {
446
+ "type": "object",
447
+ "required": ["type", "url", "destination"],
448
+ "properties": {
449
+ "type": {
450
+ "const": "file"
451
+ },
452
+ "url": {
453
+ "type": "string"
454
+ },
455
+ "destination": {
456
+ "type": "string"
457
+ },
458
+ "sudo": {
459
+ "type": "boolean"
460
+ },
461
+ "silent": {
462
+ "type": "boolean"
463
+ },
464
+ "executable": {
465
+ "type": "boolean"
466
+ },
467
+ "depends_on": {
468
+ "$ref": "#/definitions/dependencyList"
469
+ },
470
+ "pre_install": {
471
+ "$ref": "#/definitions/commandList"
472
+ },
473
+ "post_install": {
474
+ "$ref": "#/definitions/commandList"
475
+ }
476
+ },
477
+ "additionalProperties": false
478
+ },
479
+ "shellPackage": {
480
+ "type": "object",
481
+ "required": ["type"],
482
+ "properties": {
483
+ "type": {
484
+ "const": "shell"
485
+ },
486
+ "shell": {
487
+ "type": "string"
488
+ },
489
+ "url": {
490
+ "type": "string"
491
+ },
492
+ "script": {
493
+ "type": "string"
494
+ },
495
+ "sudo": {
496
+ "type": "boolean"
497
+ },
498
+ "depends_on": {
499
+ "$ref": "#/definitions/dependencyList"
500
+ },
501
+ "pre_install": {
502
+ "$ref": "#/definitions/commandList"
503
+ },
504
+ "post_install": {
505
+ "$ref": "#/definitions/commandList"
506
+ }
507
+ },
508
+ "additionalProperties": false,
509
+ "anyOf": [
510
+ {
511
+ "required": ["url"]
512
+ },
513
+ {
514
+ "required": ["script"]
515
+ }
516
+ ]
517
+ },
518
+ "appimagePackage": {
519
+ "type": "object",
520
+ "required": ["type", "url"],
521
+ "properties": {
522
+ "type": {
523
+ "const": "appimage"
524
+ },
525
+ "url": {
526
+ "type": "string"
527
+ },
528
+ "name": {
529
+ "type": "string"
530
+ },
531
+ "icon_name": {
532
+ "type": "string"
533
+ },
534
+ "categories": {
535
+ "oneOf": [
536
+ {
537
+ "type": "string"
538
+ },
539
+ {
540
+ "type": "array",
541
+ "items": {
542
+ "type": "string"
543
+ }
544
+ }
545
+ ]
546
+ },
547
+ "depends_on": {
548
+ "$ref": "#/definitions/dependencyList"
549
+ },
550
+ "pre_install": {
551
+ "$ref": "#/definitions/commandList"
552
+ },
553
+ "post_install": {
554
+ "$ref": "#/definitions/commandList"
555
+ }
556
+ },
557
+ "additionalProperties": false
558
+ }
559
+ }
560
+ }