File: check-path.rkt

package info (click to toggle)
racket 7.9%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 178,684 kB
  • sloc: ansic: 282,112; lisp: 234,887; pascal: 70,954; sh: 27,112; asm: 16,268; makefile: 4,613; cpp: 2,715; ada: 1,681; javascript: 1,244; cs: 879; exp: 499; csh: 422; python: 274; xml: 106; perl: 104
file content (13 lines) | stat: -rw-r--r-- 504 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
#lang racket/base

(provide check-unpack-path)

(define (check-unpack-path who filename
                           #:allow-up? [allow-up? #f]
                           #:kind [kind "file"])
  (when (absolute-path? filename)
    (error who "won't extract a ~a with an absolute path\n  path: ~e" kind filename))
  (unless allow-up?
    (for ([e (in-list (explode-path filename))])
      (when (eq? e 'up)
        (error who "won't extract a ~a with an up-directory element\n  path: ~e" kind filename)))))