-
-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathPICK
87 lines (70 loc) · 4.21 KB
/
PICK
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "11-Aug-2022 17:53:58" {DSK}<home>larry>medley>lispusers>PICK.;3 4261
:CHANGES-TO (VARS PICKCOMS)
(FNS PICK)
:PREVIOUS-DATE "10-Aug-2022 16:57:49" {DSK}<home>larry>medley>lispusers>PICK.;1)
(PRETTYCOMPRINT PICKCOMS)
(RPAQQ PICKCOMS ((COMMANDS "pick")
(DECLARE%: EVAL@COMPILE DONTCOPY (FILES (LOADCOP)
GITFNS))
(FILES GITFNS)
(FNS PICK)))
(DEFCOMMAND "pick" (FIRST . REST) (PICK FIRST REST))
(DECLARE%: EVAL@COMPILE DONTCOPY
(FILESLOAD (LOADCOP)
GITFNS)
)
(FILESLOAD GITFNS)
(DEFINEQ
(PICK
[LAMBDA (TYPE CHOICES) (* ; "Edited 11-Aug-2022 17:15 by lmm")
(* ; "Edited 10-Aug-2022 16:57 by lmm")
(SELECTQ (MKATOM (U-CASE (MKSTRING TYPE)))
(ONEOF (* ;
"PICK ONEOF A1 A2 A3 ... - just choose from choices listed")
[CAR (NTH CHOICES (RAND 1 (LENGTH CHOICES])
(NIL (* ;
"pick -- choose an issue, a file, a project")
[PICK (PICK 'ONEOF '(FILE ISSUE PROJECT])
(ISSUE (* ;
"pick issue [number] -- display an issue; if none given, choose one at random")
(LET ([ISSUE (PICK 'ONEOF (OR CHOICES (GIT-COMMAND
"gh issue list -L 5000 -R interlisp/medley | sed 's/\([0-9]*\).*/\1/'"
]
(STR (OPENTEXTSTREAM))
(COMMENTS T)
(TITLE))
(for S in (GIT-COMMAND (CL:FORMAT NIL "gh issue view -R interlisp/medley ~d"
ISSUE)) do (CL:FORMAT STR "~a~&" S)
finally
(* ;;
"this TEDIT call is wrong -- it takes the keyboard and the promptwindow prompt is wrong")
[TEDIT STR NIL NIL `(READONLY T TITLE ,(SETQ TITLE (CL:FORMAT NIL
"Issue #~d"
ISSUE]
(* ;; "if there are comments (or always) show comments too -- the -w switch doesn't work online -- no browser")
(IF COMMENTS
THEN (GIT-COMMAND (CL:FORMAT NIL
"gh issue view -R interlisp/medley ~a -w"
ISSUE)))
(RETURN TITLE))))
(DIR
(* ;; "pick a directory to choose files from")
(PICK 'ONEOF '(LISPUSERS LIBRARY DOCTOOLS SOURCES INTERNAL)))
(FILE
(* ;; " pick a file from a (randomly chosen) directory")
[LIST 'FILE (PICK 'ONEOF (DIRECTORY (OR (MEDLEYDIR (OR (CAR CHOICES)
(PICK 'DIR))
NIL T)
(FETCH (GIT-PROJECT CLONEPATH)
OF (CDR (ASSOC (CAR CHOICES)
GIT-PROJECTS])
(PROJECT
(* ;; "pick PROJECT will choose some repo to work on")
[PICK 'ONEOF (PICK 'ONEOF (LIST (MAPCAR GIT-PROJECTS #'CAR)
'(CLOS ROOMS ONLINE WEBSITE COMMUNITY ENVOS])
(HELP TYPE "Unknown type"])
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (735 4238 (PICK 745 . 4236)))))
STOP