shell2batch

crates.io Build Status Build status codecov
license Libraries.io for GitHub Documentation downloads
Built with cargo-make

Coverts simple basic shell scripts to windows batch scripts.

Overview

While it is not really possible to take every shell script and automatically convert it to a windows batch file, this library provides a way to convert simple basic shell commands to windows batch commands.
The original goal of this library is to provide users of cargo-make a way to write simple tasks with shell scripts without duplicating their code for each platform.

Usage

Simply include the library and invoke the convert function as follows:

```rust extern crate shell2batch;

fn main() { let script = shell2batch::convert( r#" export FILE1=file1 export FILE2=file2

    #this is some test code
    cp ${FILE1} $FILE2

    #another
    mv file2 file3

    export MY_DIR=directory

    #flags are supported
    rm -Rf ${MY_DIR}

    unset MY_DIR
    "#
);

assert_eq!(
    script,
    r#"

set FILE1=file1 set FILE2=file2

@REM this is some test code xcopy %FILE1% %FILE2%

@REM another move file2 file3

set MY_DIR=directory

@REM flags are supported del /Q %MY_DIR%

set MY_DIR= "# );

println!("Script: {}", script);

} ```

Installation

In order to use this library, just add it as a dependency:

ini [dependencies] shell2batch = "*"

API Documentation

See full docs at: API Docs

Contributing

See contributing guide

Release History

| Date | Version | Description | | ----------- | ------- | ----------- | | 2018-01-01 | v0.1.10 | Maintenance | | 2017-10-24 | v0.1.4 | Variable replacement support. | | 2017-10-22 | v0.1.2 | Added command flags replacements. | | 2017-10-21 | v0.1.0 | Initial release. |

License

Developed by Sagie Gur-Ari and licensed under the Apache 2 open source license.