diff --git a/Cargo.lock b/Cargo.lock index e46fefbe..26da1ff8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -481,7 +481,7 @@ dependencies = [ [[package]] name = "yash-cli" -version = "0.1.0" +version = "0.1.0-alpha.1" dependencies = [ "assert_matches", "futures-executor", diff --git a/README.md b/README.md index 6f5aa2fb..4d51a540 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,51 @@ # Yash-rs -This is a reimplementation project of [Yet Another Shell (yash)](https://yash.osdn.jp/) in Rust. +This is a reimplementation project of [Yet Another Shell (yash)](https://magicant.github.io/yash/) in Rust. +Currently, only a minimal subset of the original yash is implemented. +It will be extended to cover more features in the future. [![Build status](https://github.com/magicant/yash-rs/actions/workflows/rust.yml/badge.svg)](https://github.com/magicant/yash-rs/actions/workflows/rust.yml) - +## Features - +Currently, yash can run shell scripts that use POSIX-compatible syntax. +Interactive features are under development, and locale support is not yet implemented. -## Development status +- [x] Running shell scripts that only use POSIX-compatible syntax and features +- [ ] Interactive shell features +- [ ] Enhanced scripting features (Extensions to POSIX shell) +- [ ] Performance optimization +- [ ] Locale support -Yash is currently in a pre-alpha state. -Many features are still yet to be implemented. +## Supported platforms + +Yash should work on any Unix-like system. +We are testing it on Linux and macOS. +Windows is not supported, but it works under the Windows Subsystem for Linux (WSL). + +## Installation + +To build and install yash, you need to have Rust installed. +Go to and follow the instructions to install Rust. +You will need the latest stable version of the Rust compiler. + +Make sure the `cargo` tool installed by `rustup` is in your `PATH`. +Then, run the following command: + +```sh +cargo install yash-cli +``` + +## Usage + +To run a shell script, run `yash3` with the script file as an argument. +Without an argument, `yash3` will start a read-eval loop, but interactive features are not yet implemented. + +The user manual is not yet available, but you can refer to the original yash manual at . + +## How to contribute + +TBD ## License diff --git a/yash-cli/CHANGELOG.md b/yash-cli/CHANGELOG.md new file mode 100644 index 00000000..343d3f76 --- /dev/null +++ b/yash-cli/CHANGELOG.md @@ -0,0 +1,14 @@ +# Changelog + +All notable changes to `yash-cli` will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.1.0-alpha.1] - 2024-04-13 + +### Added + +- Initial implementation of the `yash-cli` crate + +[0.1.0-alpha.1]: https://github.com/magicant/yash-rs/releases/tag/yash-cli-0.1.0-alpha.1 diff --git a/yash-cli/Cargo.toml b/yash-cli/Cargo.toml index aa448ea0..65a59732 100644 --- a/yash-cli/Cargo.toml +++ b/yash-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "yash-cli" -version = "0.1.0" +version = "0.1.0-alpha.1" authors = ["WATANABE Yuki "] edition = "2021" rust-version = "1.75.0" @@ -10,10 +10,8 @@ readme = "README.md" # homepage = "https://yash.osdn.jp/" repository = "https://github.com/magicant/yash-rs" license = "GPL-3.0-or-later" -# license-file = "LICENSE" keywords = ["posix", "shell"] categories = ["command-line-utilities"] -publish = false [[bin]] name = "yash3" diff --git a/yash-cli/README.md b/yash-cli/README.md new file mode 100644 index 00000000..1e453686 --- /dev/null +++ b/yash-cli/README.md @@ -0,0 +1,15 @@ +# Yash-cli + +`yash-cli` is a command-line interface for the [yash](../README.md) shell +implementation. This crate is not intended to be used as a library by other +programs. + +[![yash-cli at crates.io](https://img.shields.io/crates/v/yash-cli.svg)](https://crates.io/crates/yash-cli) +[![yash-cli at docs.rs](https://docs.rs/yash-cli/badge.svg)](https://docs.rs/yash-cli) +[![Build status](https://github.com/magicant/yash-rs/actions/workflows/rust.yml/badge.svg)](https://github.com/magicant/yash-rs/actions/workflows/rust.yml) + +- [Changelog](CHANGELOG.md) + +## License + +This crate is distributed under [GPLv3](LICENSE-GPL).