(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)

(FILECREATED " 9-Aug-2025 09:20:03" {DSK}<home>larry>il>medley>lispusers>PICK.;2 4413   

      :EDIT-BY "lmm"

      :CHANGES-TO (FNS PICK)

      :PREVIOUS-DATE "11-Aug-2022 17:53:58" {DSK}<home>larry>il>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  8-Aug-2025 09:06 by lmm")
                                                             (* ; "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 (with no parameters) 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 [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")

             [LIST 'DIRECTORY "Examine directory"
                   (PICK 'ONEOF '(CLOS CLTL2 FONTS GREETFILES LISPUSERS LIBRARY DOCTOOLS DOCS SOURCES
                                       INTERNAL])
        (FILE 
              (* ;; " pick a file from a (randomly chosen) directory")

              [LIST 'FILE "Examine file"
                    (PICK 'ONEOF (DIRECTORY (OR (MEDLEYDIR [OR (CAR CHOICES)
                                                               (CL:THIRD (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")

                 [LIST 'PROJECT "Examine the fiiles associated with the GITFNS project"
                       (PICK 'ONEOF (PICK 'ONEOF (LIST (MAPCAR GIT-PROJECTS #'CAR)
                                                       '(CLOS ROOMS ONLINE WEBSITE COMMUNITY ENVOS])
        (HELP TYPE "Unknown type to pick from"])
)
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (729 4390 (PICK 739 . 4388)))))
STOP
