Convert between POSIX and Windows paths.
Usage
var convertPath = require( '@stdlib/utils/convert-path' );
convertPath( from, to )
Converts between POSIX and Windows paths.
var p = convertPath( 'C:\\foo\\bar', 'posix' ); // returns '/c/foo/bar'
The following output path conventions are supported:
- win32: Windows path convention; e.g.,
C:\\foo\\bar. - mixed: mixed path convention (Windows volume convention and POSIX path separator); e.g.,
C:/foo/bar. - posix: POSIX path convention; e.g.,
/c/foo/bar.
Notes
- A Windows extended-length path cannot be converted to either a
mixedorposixpath convention, as forward slashes cannot be used as path separators. - If a POSIX path begins with
/[A-Za-z]/(e.g.,/c/), the path is assumed to begin with a volume name. - The function makes no attempt to verify that a provided path is valid.
Examples
var convertPath = require( '@stdlib/utils/convert-path' ); var p1; var p2; p1 = '/c/foo/bar/beep.c'; p2 = convertPath( p1, 'win32' ); // returns 'c:\foo\bar\beep.c' p1 = '/c/foo/bar/beep.c'; p2 = convertPath( p1, 'mixed' ); // returns 'c:/foo/bar/beep.c' p1 = '/c/foo/bar/beep.c'; p2 = convertPath( p1, 'posix' ); // returns '/c/foo/bar/beep.c' p1 = 'C:\\\\foo\\bar\\beep.c'; p2 = convertPath( p1, 'win32' ); // returns 'C:\\foo\bar\beep.c' p1 = 'C:\\\\foo\\bar\\beep.c'; p2 = convertPath( p1, 'mixed' ); // returns 'C:/foo/bar/beep.c' p1 = 'C:\\\\foo\\bar\\beep.c'; p2 = convertPath( p1, 'posix' ); // returns '/c/foo/bar/beep.c'
CLI
Usage
Usage: convert-path [options] [<path>] --out=<output>
Options:
-h, --help Print this message.
-V, --version Print the package version.
-o, --out output Output path convention.
--split sep Delimiter for stdin data. Default: '/\\r?\\n/'.
Notes
-
If the split separator is a regular expression, ensure that the
splitoption is either properly escaped or enclosed in quotes.# Not escaped... $ echo -n $'c:/foo/bar\n./docs/eslint' | convert-path --out=posix --split /\r?\n/ # Escaped... $ echo -n $'c:/foo/bar\n./docs/eslint' | convert-path --out=posix --split /\\r?\\n/
-
The implementation ignores trailing delimiters.
Examples
$ convert-path /c/foo/bar --out=mixed c:/foo/bar
To use as a standard stream,
$ echo -n '/c/foo/bar' | convert-path --out=win32 c:\foo\bar
By default, when used as a standard stream, the implementation assumes newline-delimited data. To specify an alternative delimiter, set the split option.
$ echo -n 'c:/foo/bar\t./docs/eslint' | convert-path --out=win32 --split '\t' c:\foo\bar .\docs\eslint