shik 0.1.0

A functional scripting language for shell automation
Documentation

Shik Language

Overview

Shik is a functional, dynamically-typed scripting language designed for shell automation with a minimalist syntax designed to be easily written in the terminal.

Installation

From Source (Recommended)

# Requires Rust toolchain (https://rustup.rs/)
cargo install --git https://github.com/yourusername/shik

From Pre-built Binaries

Download the appropriate binary for your platform from the Releases page.

Build from Source

git clone https://github.com/yourusername/shik
cd shik
cargo build --release
# Binary will be at target/release/shik

Usage

# Run a script file
shik script.shk

# Start REPL (interactive mode)
shik

Language Features

  • Pipeline operator ($>) for function composition
  • First-class functions and lambdas
  • Pattern matching capabilities
  • Rich standard library for working with system
  • Lazy evaluation where appropriate

Example

;; get all files in lang-dev with ext name .dk
;; Any string without whitespaces could be written with `:` symbol in the start
glob :../lang-dev/**/*.dk $>
  ;; Redirect it to function list mapping function.
  ;; Replace all :src/file.dk with ["src/file.dk", "src/file.ts"].
  map (fn [f] [f, ext.replace f :ts]) $>
  ;; Iterate each entry, and for each file copy if the file exists to "./"
  iterate (iterate (fn [f] copy.if-exists f :./))

Building for Distribution

See DISTRIBUTION.md for detailed instructions on building release binaries for multiple platforms.

License

MIT