635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
|
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
|
-
+
-
-
-
+
+
+
|
(let* ((parent-dir target-path)
(last-dir-name (if (pathname-extension target-path)
(conc(pathname-file target-path) "." (pathname-extension target-path))
(pathname-file target-path)))
(curr-dir (current-directory))
(start-dir (conc (current-directory) "/" last-dir-name))
(execlude (make-exclude-pattern (string-split restrictions ",")))
(tmpfile (conc "/tmp/" (current-user-name) "/my-pipe-" (current-process-id))))
(tmpfile (conc "/tmp/my-pipe-" (current-process-id))))
(if (file-exists? start-dir)
(begin
(sauth:print-error (conclast-dir-name " already exist in your work dir."))
(sauth:print-error "Nothing has been retrieved!! "))
(begin
; (sretrieve:do-as-calling-user
; (lambda ()
(if (not (file-exists? (conc "/tmp/" (current-user-name))))
(create-directory (conc "/tmp/" (current-user-name)) #t))
; (print tmpfile)
;(if (not (file-exists? (conc "/tmp/" (current-user-name))))
; (create-directory (conc "/tmp/" (current-user-name)) #t))
(change-directory parent-dir)
(create-fifo tmpfile)
(process-fork
(lambda()
(sleep 1)
(with-output-to-file tmpfile
(lambda ()
|