io.pathnames: adding file-directory.
parent
24778bf705
commit
65678aeeb2
|
@ -33,13 +33,21 @@ HELP: file-extension
|
|||
|
||||
HELP: file-stem
|
||||
{ $values { "path" "a pathname string" } { "stem" string } }
|
||||
{ $description "Outputs the " { $link file-name } " of " { $snippet "filename" } " with the file extension removed, if any." }
|
||||
{ $description "Outputs the " { $link file-name } " of " { $snippet "path" } " with the file extension removed, if any." }
|
||||
{ $examples
|
||||
{ $example "USING: io.pathnames prettyprint ;" "\"/usr/bin/gcc\" file-stem ." "\"gcc\"" }
|
||||
{ $example "USING: io.pathnames prettyprint ;" "\"/home/csi/gui.vbs\" file-stem ." "\"gui\"" }
|
||||
} ;
|
||||
|
||||
{ file-name file-stem file-extension } related-words
|
||||
HELP: file-directory
|
||||
{ $values { "path" "a pathname string" } { "directory" string } }
|
||||
{ $description "Outputs the directory of " { $snippet "path" } " with the " { $link file-name } " removed, if any." }
|
||||
{ $examples
|
||||
{ $example "USING: io.pathnames prettyprint ;" "\"/usr/bin/gcc\" file-directory ." "\"/usr/bin\"" }
|
||||
{ $example "USING: io.pathnames prettyprint ;" "\"/home/csi/gui.vbs\" file-directory ." "\"/home/csi\"" }
|
||||
} ;
|
||||
|
||||
{ file-name file-stem file-extension file-directory } related-words
|
||||
|
||||
HELP: path-components
|
||||
{ $values { "path" "a pathnames string" } { "seq" sequence } }
|
||||
|
|
|
@ -76,6 +76,13 @@ ERROR: no-parent-directory path ;
|
|||
[ f ]
|
||||
} cond ;
|
||||
|
||||
: special-path ( path -- prefix )
|
||||
{
|
||||
{ [ dup "resource:" head? ] [ drop "resource:" ] }
|
||||
{ [ dup "vocab:" head? ] [ drop "vocab:" ] }
|
||||
[ drop "" ]
|
||||
} cond ;
|
||||
|
||||
PRIVATE>
|
||||
|
||||
: absolute-path? ( path -- ? )
|
||||
|
@ -125,6 +132,11 @@ PRIVATE>
|
|||
: file-extension ( path -- extension )
|
||||
file-name "." split1-last nip ;
|
||||
|
||||
: file-directory ( path -- directory )
|
||||
[ special-path ] [ special-path? drop ] bi
|
||||
dup last-path-separator [ head append ] [ 2drop ] if
|
||||
[ path-separator ] when-empty ;
|
||||
|
||||
: path-components ( path -- seq )
|
||||
normalize-path path-separator split harvest ;
|
||||
|
||||
|
|
Loading…
Reference in New Issue