commit fff988c
chld
·
2026-08-30 04:23:05 +0000 UTC
parent fff988c
pm: init
1 files changed,
+75,
-0
A
pm
A
pm
+75,
-0
1@@ -0,0 +1,75 @@
2+#!/bin/guile
3+!#
4+
5+;; print manifests
6+;; a extension for dtr written in guile
7+;; usage: dtr pm <pkg>
8+
9+(use-modules (ice-9 popen)
10+ (ice-9 rdelim)
11+ (srfi srfi-1))
12+
13+(define pkg
14+ (string-trim-right
15+ (last
16+ (string-split
17+ (cadr (command-line))
18+ #\/
19+ ))
20+ #\newline
21+ )
22+ )
23+
24+(define l '())
25+
26+(call-with-input-file
27+ (format #f "/var/lib/spc/installed")
28+ (lambda (g)
29+
30+ (unless (member pkg (string-split (read-string g) #\newline)string=?)
31+
32+ (format #t "~aERROR:~a package '~a' not found~%"
33+ "\x1b[31;1m" "\x1b[m"
34+ pkg)
35+ (exit 1))
36+ ))
37+
38+(call-with-input-file
39+ (format #f "/var/lib/spc/lock/~a.lock" pkg)
40+ (lambda (f)
41+ (set! l
42+ (string-split
43+ (read-string f)
44+ #\newline)
45+ )
46+ ))
47+
48+;; https://codeberg.org/kiss-community/kiss/src/commit/32ed1933ac8ccc5816cfdcc51769fe756232fc68/contrib/kiss-size#L28
49+
50+(let m
51+ (
52+ (n 0)
53+ )
54+
55+ (when (< n (length l))
56+ (let* (
57+ (cl (list-ref l n))
58+ (p (car (string-split cl #\|)))
59+ )
60+ (when (not (or
61+ (string-contains
62+ cl
63+ ": "
64+ )
65+ (string-contains cl "deps:")
66+ (string-contains cl "files:")
67+ (string-suffix? "/" p)
68+ )
69+ )
70+
71+ (format #t
72+ "~a~%"
73+ p
74+ ))
75+ (m (+ n 1))
76+ )))