# dntk [![Travis CI](https://travis-ci.org/nnao45/dntk.svg?branch=master)](https://travis-ci.org/nnao45/dntk) [![v2.2.0](https://img.shields.io/badge/package-v2.2.0-ff69b4.svg)](https://github.com/nnao45/dntk/releases/tag/v2.2.0) [![crates](https://img.shields.io/badge/crates.io-v2.2.0-319e8c.svg)](https://crates.io/crates/dntk) [![docker](https://img.shields.io/badge/docker-v2.2.0-blue.svg)](https://hub.docker.com/r/nnao45/dntk/tags) [![license](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://raw.githubusercontent.com/nnao45/dntk/master/LICENSE) [![platform](https://img.shields.io/badge/platform-%20osx%20|%20linux%20|%20freebsd%20|%20windows-orange.svg)](https://github.com/nnao45/dntk/releases) dntk is command line's multi-platform ***Interactive*** calculator, [GNU bc](https://www.gnu.org/software/bc/) wrapper. ![gjf](https://github.com/nnao45/naoGifRepo/blob/master/dntk_demo.gif) ✔︎ dntk means calculator in a japanese. ✔︎ dntk is gnu bc wrapper. so, syntax is equal to gnu bc. [learn syntax more](https://www.gnu.org/software/bc/manual/html_mono/bc.html) ✔︎ dntk is a NATIVE [The Rust Programming Language](https://rust-lang.org) application. ✔︎ dntk can move cursor, can delete char, can refresh buffer. ✔︎ dntk write color means,
color means
cyan can caluclate & can output
megenta can't caluclate, can't output
yellow danger input char, output warning
green clean buffer message
## ***Current dntk's version:v2.2.1*** Download Page: https://github.com/nnao45/dntk/releases/latest ## Platform dntk support multi-platform 😊 mac, linux, freebsd, and **windows**!!! - i686-osx - x86_64-osx - i686-linux - x86_64-linux - i686-windows - x86_64-windows - i686-freebsd - x86_64-freebsd ## Install ### Mac ```bash $ brew install nnao45/dntk/dntk ``` ### Linux ```bash $ wget https://github.com/nnao45/dntk/releases/download/v2.2.0/dntk-v2.2.0-x86_64-unknown-linux-musl.zip $ unzip dntk-v2.2.0-x86_64-unknown-linux-musl.zip ``` ### Windows ```bash $ wget https://github.com/nnao45/dntk/releases/download/v2.2.0/dntk-v2.2.0-x86_64-pc-windows-msvc.zip $ unzip dntk-v2.2.0-x86_64-pc-windows-msvc.zip ``` ### FreeBSD ```bash $ wget https://github.com/nnao45/dntk/releases/download/v2.2.0/dntk-v2.2.0-x86_64-unknown-freebsd.zip $ unzip dntk-v2.2.0-x86_64-unknown-freebsd.zip ``` ### Cargo ```bash $ cargo install dntk ``` ### zplug ```bash $ zplug 'nnao45/dntk', as:command, from:gh-r ``` ### Docker Can use dntk docker image, Look!! Very light weight!!🚀 ```bash $ docker images nnao45/dntk REPOSITORY TAG IMAGE ID CREATED SIZE nnao45/dntk latest 3a37b5d989b5 2 hours ago 10.5MB ``` And run, ```bash $ docker run -it --rm nnao45/dntk:latest ``` ### And... ```bash $ echo 'alias bc=dntk' >> ~/.bashrc $ echo 'alias bc=dntk' >> ~/.zshrc ``` All OK!! 😎 ## Options ``` ❯❯❯ dntk -h Command line's multi-platform interactive calculator, GNU bc wrapper. USAGE: dntk [FLAGS] [OPTIONS] FLAGS: -h, --help Prints help information --once Run at only once -q, --quiet No print information message --show-limits Print the local limits enforced by the local version of bc, and quit -V, --version Prints version information -w, --white Set White color in a output OPTIONS: -b, --bc-path Use a specific bc command path [default: bc] -i, --inject Pre-run inject statement to the dntk [default: ] -s, --scale Number of truncated after the decimal point [default: 20] ``` ## Windows Support You may install bc.exe and set PATH. ```bash $ choco install gnuwin $ # or $ wget wget https://embedeo.org/ws/command_line/bc_dc_calculator_windows/bc-1.07.1-win32-embedeo-02.zip $ unzip bc-1.07.1-win32-embedeo-02.zip ``` ![gjf](https://github.com/nnao45/naoGifRepo/blob/master/dntk_win_demo.gif) ## Keybind ### Basic Key
key feature
[, ← cursor move to left
], → cursor move to right
0~9 Sendkey this number
Ctrl+C, Enter Finish dntk app
Delete, Backspace Delete current char
@ Clean buffer
### Basic Operation
key feature
+ plus
- minus
* multiplication
/ division
^ exponentiation
% remainder
### Operation for Logical
key feature
! boolean, relational
| boolean
& boolean
> relational
< relational
= relational
### Using Function you can use under function.
function key feature
(x) () Simple round bracket
sin(x) s() Sin of trigonometric function
cos(x) c() Cosin of trigonometric function
atan(x) a() Tangent of inverse trigonometric function
log(x) l() Logarithm function
exp(x) e() Exponential function
sqrt(x) sqrt() Return square root of the expression function
j(n,x) j() The n-order Bessel function
more detail 👉 https://www.gnu.org/software/bc/manual/html_mono/bc.html ## Pipe Use... ```bash $ echo "123 * 2" | dntk 246 ``` behave, like bc ☺️ # Development Guide ## Compile ### Binary ```bash $ make ``` ### Docker ```bash $ make docker-build ``` # Contribute Always Welcome!! 😄 ***Have a nice rust hacking days***:sparkles::wink: ## Writer & License dntk was writed by nnao45 (WORK:Infrastructure Engineer, Twitter:@nnao45, MAIL:n4sekai5y@gmail.com). This software is released under the MIT License, see LICENSE.