Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sagiegurari/shell2batch
Coverts simple basic shell scripts to windows batch scripts.
https://github.com/sagiegurari/shell2batch
batch-script conversion rust rust-library scripting shell-script
Last synced: 5 days ago
JSON representation
Coverts simple basic shell scripts to windows batch scripts.
- Host: GitHub
- URL: https://github.com/sagiegurari/shell2batch
- Owner: sagiegurari
- License: apache-2.0
- Created: 2017-10-21T11:04:56.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-07-29T12:54:54.000Z (6 months ago)
- Last Synced: 2024-10-15T04:26:53.709Z (3 months ago)
- Topics: batch-script, conversion, rust, rust-library, scripting, shell-script
- Language: Rust
- Size: 4.01 MB
- Stars: 57
- Watchers: 3
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- starred - sagiegurari/shell2batch - Coverts simple basic shell scripts to windows batch scripts. (Rust)
README
# shell2batch
[![crates.io](https://img.shields.io/crates/v/shell2batch.svg)](https://crates.io/crates/shell2batch) [![CI](https://github.com/sagiegurari/shell2batch/workflows/CI/badge.svg?branch=master)](https://github.com/sagiegurari/shell2batch/actions) [![codecov](https://codecov.io/gh/sagiegurari/shell2batch/branch/master/graph/badge.svg)](https://codecov.io/gh/sagiegurari/shell2batch)
[![license](https://img.shields.io/crates/l/shell2batch.svg)](https://github.com/sagiegurari/shell2batch/blob/master/LICENSE) [![Libraries.io for GitHub](https://img.shields.io/librariesio/github/sagiegurari/shell2batch.svg)](https://libraries.io/cargo/shell2batch) [![Documentation](https://docs.rs/shell2batch/badge.svg)](https://docs.rs/crate/shell2batch/) [![downloads](https://img.shields.io/crates/d/shell2batch.svg)](https://crates.io/crates/shell2batch)
[![Built with cargo-make](https://sagiegurari.github.io/cargo-make/assets/badges/cargo-make.svg)](https://sagiegurari.github.io/cargo-make)> Coverts simple basic shell scripts to windows batch scripts.
* [Overview](#overview)
* [Usage](#usage)
* [Installation](#installation)
* [API Documentation](https://sagiegurari.github.io/shell2batch/)
* [Contributing](.github/CONTRIBUTING.md)
* [Release History](CHANGELOG.md)
* [License](#license)
## 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](https://sagiegurari.github.io/cargo-make/) a way to write simple tasks with shell scripts without duplicating their code for each platform.
It is possible to provide custom conversion hints by using the **# shell2batch:** prefix (see below example).
## Usage
Simply include the library and invoke the convert function as follows:```rust
fn main() {
let script = shell2batch::convert(
r#"
set -xexport FILE1=file1
export FILE2=file2#this is some test code
cp ${FILE1} $FILE2
cp -r ${DIR1} $DIR2#another
mv file2 file3export MY_DIR=directory
#flags are supported
rm -Rf ${MY_DIR}unset MY_DIR
touch ./file3
#provide custom windows command for specific shell command
complex_bash_command --flag1 value2 # shell2batch: complex_windows_command /flag10 windows_value
"#,
);assert_eq!(
script,
r#"
@echo onset FILE1=file1
set FILE2=file2@REM this is some test code
copy %FILE1% %FILE2%
xcopy /E %DIR1% %DIR2%@REM another
move file2 file3set MY_DIR=directory
@REM flags are supported
rmdir /S /Q %MY_DIR%set MY_DIR=
copy /B .\file3+,, .\file3
@REM provide custom windows command for specific shell command
complex_windows_command /flag10 windows_value
"#
);println!("Script: {}", script);
}
```
## Installation
In order to use this library, just add it as a dependency:```ini
[dependencies]
shell2batch = "^0.4.5"
```## API Documentation
See full docs at: [API Docs](https://sagiegurari.github.io/shell2batch/)## Contributing
See [contributing guide](.github/CONTRIBUTING.md)See [Changelog](CHANGELOG.md)
## License
Developed by Sagie Gur-Ari and licensed under the Apache 2 open source license.