Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Convert Path

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 mixed or posix path 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 split option 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