All Projects → NNBnh → coderun

NNBnh / coderun

Licence: GPL-3.0 license
⏯️ Code runner CLI that can run any languages

Programming Languages

shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to coderun

bfetch
📠 Dynamic fetch displayer that SuperB
Stars: ✭ 114 (+395.65%)
Mutual labels:  basher, posix, bpkg
await
28Kb, small memory footprint, single binary that run list of commands in parallel and waits for their termination
Stars: ✭ 73 (+217.39%)
Mutual labels:  posix, runner
executor
A powerful "short-cutter" to your console to you and your team!
Stars: ✭ 21 (-8.7%)
Mutual labels:  executor, runner
land
Run Deno X module without installation.
Stars: ✭ 39 (+69.57%)
Mutual labels:  runner
nano-staged
Tiny tool to run commands for modified, staged, and committed files in a GIT repository.
Stars: ✭ 347 (+1408.7%)
Mutual labels:  runner
lustre-release
Mirror of official Lustre development repository http://git.whamcloud.com/
Stars: ✭ 35 (+52.17%)
Mutual labels:  posix
juicefs-csi-driver
JuiceFS CSI Driver
Stars: ✭ 117 (+408.7%)
Mutual labels:  posix
QshOni
The QShell on IBM i library contains useful CL wrapper commands to allow QShell and PASE apps to be called and consumed from regular IBM i jobs via CL, RPG or COBOL programs.
Stars: ✭ 34 (+47.83%)
Mutual labels:  runner
onionjuggler
Manage your Onion Services via CLI or TUI on Unix-like operating system with a POSIX compliant shell.
Stars: ✭ 31 (+34.78%)
Mutual labels:  posix
dash.nvim
Script runner for quick iteration. Bring your scripting to the next level.
Stars: ✭ 37 (+60.87%)
Mutual labels:  runner
dotfiles skeleton
robust and beginner friendly dotfile skeleton
Stars: ✭ 14 (-39.13%)
Mutual labels:  posix
hostname
Cross-platform hostname functions in Rust
Stars: ✭ 48 (+108.7%)
Mutual labels:  posix
jest-runner-go
A Golang runner for Jest
Stars: ✭ 22 (-4.35%)
Mutual labels:  runner
YACLib
Yet Another Concurrency Library
Stars: ✭ 193 (+739.13%)
Mutual labels:  executor
uiLogos-sketch-plugin
Sketch plugin to Insert professionally designed dummy logos of companies and 190+ country flag into SketchApp
Stars: ✭ 26 (+13.04%)
Mutual labels:  runner
sh
Collection Of My Sh Scripts.
Stars: ✭ 109 (+373.91%)
Mutual labels:  posix
spring-file-storage-service
The FSS(file storage service) APIs make storing the blob file easy and simple .
Stars: ✭ 33 (+43.48%)
Mutual labels:  posix
PopRun
跑鸭:这是我的毕业设计,“跑鸭”微信小程序-一款基于校园跑步的社交小程序(实时里程配速、运动路径、整公里提醒、周榜月榜、打卡分享、热门推荐、线上活动、勋章墙、隐私设置),技术栈:Vant-Weapp UI、Laravel+MySQL
Stars: ✭ 64 (+178.26%)
Mutual labels:  runner
libjio
[mirror] A library for Journaled I/O
Stars: ✭ 17 (-26.09%)
Mutual labels:  posix
InitKit
Neo-InitWare is a modular, cross-platform reimplementation of the systemd init system. It is experimental.
Stars: ✭ 364 (+1482.61%)
Mutual labels:  posix

Coderun

Code runner CLI that can run any languages

License: GPL-3.0 Development completed

💡 About

Coderun is a code runner CLI written in portable sh that can run any languages.

coderun.mp4

📔 Story

After a long time searching for something like a CLI's version Code Runner asking people on r/kakoune and still doesn't find it, I decided to create my own with only 8 lines of portable sh:

#!/bin/sh
DIRECTORY=$(dirname "$1")
FILE=$(basename "$1")
FULL="$DIRECTORY/$FILE"
NAME="${FILE%.*}"
EXTENSION=$(printf '%s' "$FILE" | sed -e "s/^$NAME\.*//" -e 's/+/p/g' -e 's/-/_/g')
eval "$(eval "printf '%s' \"\$CODERUN_$EXTENSION\"")"
exit 0

and a Kakoune plugin: coderun.kak.

🚀 Setup

🧾 Dependencies

  • Unix commands to process
  • The language that you want to run (obviously)

📥 Installation

🔧 Manually

Option 1: using curl

curl https://raw.githubusercontent.com/NNBnh/coderun/main/bin/coderun > ~/.local/bin/coderun
chmod +x ~/.local/bin/coderun

Option 2: using git

git clone https://github.com/NNBnh/coderun.git ~/.local/share/coderun
ln -s ~/.local/share/coderun/bin/coderun ~/.local/bin/coderun

📦 Package manager

For Bpkg user:

bpkg install NNBnh/coderun

For Basher user:

basher install NNBnh/coderun

Note If you can and want to port Coderun to other package managers, feel free to do so.

⌨️ Usage

Run coderun in the terminal:

coderun FILE

Note Coderun out of the box cannot run code, you need to configure it.

⚙️ Configuration

Coderun is configured through environment variables: export CODERUN_<extension>="<method>"

<extension>:

  • Extension is case sensitive (e.g: c is different than C)
  • Because the shell does not accept values with some symbols so the characters in the side extension will be converted:
    • From + to p (e.g: c++ => cpp)
    • From - to _ (e.g: php-s => php_s)

<method>:

  • Keep in mind that the <method> will be run through eval (e.g: // => /)
  • Supported parameters:
Parameter Example Description
\$FULL /home/user/foo.c File's full path
\$DIRECTORY /home/user File's directory
\$FILE foo.c File's base name
\$NAME foo File's name only
\$EXTENSION c File's extension

Examples:

export CODERUN_="chmod +x \$FULL && \$FULL"
export CODERUN_sh="$CODERUN_"
export CODERUN_bash="bash \$FULL"
export CODERUN_zsh="zsh \$FULL"
export CODERUN_fish="fish \$FULL"
export CODERUN_1="man \$FULL"
export CODERUN_2="$CODERUN_1"
export CODERUN_3="$CODERUN_1"
export CODERUN_4="$CODERUN_1"
export CODERUN_5="$CODERUN_1"
export CODERUN_6="$CODERUN_1"
export CODERUN_7="$CODERUN_1"
export CODERUN_8="$CODERUN_1"
export CODERUN_9="$CODERUN_1"
export CODERUN_js="node \$FULL"
export CODERUN_cjs="$CODERUN_js"
export CODERUN_mjs="$CODERUN_js"
export CODERUN_java="cd \$DIRECTORY && javac \$FILE && java \$NAME"
export CODERUN_class="$CODERUN_java"
export CODERUN_jar="$CODERUN_java"
export CODERUN_c="cd \$DIRECTORY && gcc \$FILE -o \$NAME && \$DIRECTORY/\$NAME"
export CODERUN_h="$CODERUN_c"
export CODERUN_cc="cd \$DIRECTORY && g++ \$FILE -o \$NAME && \$DIRECTORY/\$NAME"
export CODERUN_C="$CODERUN_cc"
export CODERUN_cpp="$CODERUN_cc"
export CODERUN_cxx="$CODERUN_cc"
export CODERUN_hh="$CODERUN_cc"
export CODERUN_H="$CODERUN_cc"
export CODERUN_hpp="$CODERUN_cc"
export CODERUN_hxx="$CODERUN_cc"
export CODERUN_m="cd \$DIRECTORY && gcc -framework Cocoa \$FILE -o \$NAME && \$DIRECTORY/\$NAME"
export CODERUN_mm="$CODERUN_m"
export CODERUN_M="$CODERUN_m"
export CODERUN_php="php \$FULL"
export CODERUN_phtml="$CODERUN_php"
export CODERUN_php3="$CODERUN_php"
export CODERUN_php4="$CODERUN_php"
export CODERUN_php5="$CODERUN_php"
export CODERUN_php7="$CODERUN_php"
export CODERUN_phps="$CODERUN_php"
export CODERUN_php_s="$CODERUN_php"
export CODERUN_pht="$CODERUN_php"
export CODERUN_phar="$CODERUN_php"
export CODERUN_py="python -u \$FULL"
export CODERUN_pyi="$CODERUN_py"
export CODERUN_pyc="$CODERUN_py"
export CODERUN_pyd="$CODERUN_py"
export CODERUN_pyo="$CODERUN_py"
export CODERUN_pyw="$CODERUN_py"
export CODERUN_pyz="$CODERUN_py"
export CODERUN_perl="perl \$FULL"
export CODERUN_plx="$CODERUN_perl"
export CODERUN_pl="$CODERUN_perl"
export CODERUN_pm="$CODERUN_perl"
export CODERUN_xs="$CODERUN_perl"
export CODERUN_t="$CODERUN_perl"
export CODERUN_pod="$CODERUN_perl"
export CODERUN_rb="ruby \$FULL"
export CODERUN_go="go run \$FULL"
export CODERUN_gccgo="$CODERUN_go"
export CODERUN_lua="lua \$FULL"
export CODERUN_groovy="groovy \$FULL"
export CODERUN_gvy="$CODERUN_groovy"
export CODERUN_gy="$CODERUN_groovy"
export CODERUN_gsh="$CODERUN_groovy"
export CODERUN_ps1="powershell -ExecutionPolicy ByPass -File \$FULL"
export CODERUN_ps1xml="$CODERUN_ps1"
export CODERUN_psc1="$CODERUN_ps1"
export CODERUN_psd1="$CODERUN_ps1"
export CODERUN_psm1="$CODERUN_ps1"
export CODERUN_pssc="$CODERUN_ps1"
export CODERUN_psrc="$CODERUN_ps1"
export CODERUN_cdxml="$CODERUN_ps1"
export CODERUN_cmd="cmd /c \$FULL"
export CODERUN_bat="$CODERUN_cmd"
export CODERUN_btm="$CODERUN_cmd"
export CODERUN_fsi="fsi \$FULL"
export CODERUN_fs="$CODERUN_fsi"
export CODERUN_fsx="$CODERUN_fsi"
export CODERUN_fsscript="$CODERUN_fsi"
export CODERUN_cs="scriptcs \$FULL"
export CODERUN_csx="$CODERUN_cs"
export CODERUN_vbs="cscript //Nologo \$FULL"
export CODERUN_vbe="$CODERUN_vbs"
export CODERUN_wsf="$CODERUN_vbs"
export CODERUN_wsc="$CODERUN_vbs"
export CODERUN_ts="ts-node \$FULL"
export CODERUN_tsx="$CODERUN_ts"
export CODERUN_coffee="coffee \$FULL"
export CODERUN_litcoffee="$CODERUN_coffee"
export CODERUN_scala="scala \$FULL"
export CODERUN_sc="$CODERUN_scala"
export CODERUN_swift="swift \$FULL"
export CODERUN_jl="julia \$FULL"
export CODERUN_cr="crystal \$FULL"
export CODERUN_ml="ocaml \$FULL"
export CODERUN_mli="$CODERUN_ml"
export CODERUN_r="Rscript \$FULL"
export CODERUN_rdata="$CODERUN_r"
export CODERUN_rds="$CODERUN_r"
export CODERUN_rda="$CODERUN_r"
export CODERUN_scpt="osascript \$FULL"
export CODERUN_scptd="$CODERUN_scpt"
export CODERUN_applescript="$CODERUN_scpt"
export CODERUN_clj="lein exec \$FULL"
export CODERUN_cljs="$CODERUN_clj"
export CODERUN_cljc="$CODERUN_clj"
export CODERUN_edn="$CODERUN_clj"
export CODERUN_hx="haxe --cwd \$DIRECTORY --run \$NAME"
export CODERUN_hxml="$CODERUN_hx"
export CODERUN_rs="cd \$DIRECTORY && rustc \$FILE && \$DIRECTORY/\$NAME"
export CODERUN_rlib="$CODERUN_rs"
export CODERUN_rkt="racket \$FULL"
export CODERUN_scm="csi -script \$FULL"
export CODERUN_ss="$CODERUN_scm"
export CODERUN_ahk="autohotkey \$FULL"
export CODERUN_au3="autoit3 \$FULL"
export CODERUN_dart="dart \$FULL"
export CODERUN_pp="cd \$DIRECTORY && fpc \$FILE && \$DIRECTORY/\$NAME"
export CODERUN_pas="$CODERUN_pp"
export CODERUN_inc="$CODERUN_pp"
export CODERUN_d="cd \$DIRECTORY && dmd \$FILE && \$DIRECTORY/\$NAME"
export CODERUN_hs="runhaskell \$FULL"
export CODERUN_lhs="$CODERUN_hs"
export CODERUN_nim="nim compile --verbosity:0 --hints:off --run \$FULL"
export CODERUN_nims="$CODERUN_nim"
export CODERUN_nimbls="$CODERUN_nim"
export CODERUN_lisp="sbcl --script \$FULL"
export CODERUN_kit="kitc --run \$FULL"
export CODERUN_v="v run \$FULL"
export CODERUN_sass="sass --style expanded \$FULL"
export CODERUN_scss="scss --style expanded \$FULL"
export CODERUN_less="cd \$DIRECTORY && lessc \$FILE \$NAME.css"
export CODERUN_f="cd \$DIRECTORY && gfortran \$FILE -o \$NAME && \$DIRECTORY/\$NAME"
export CODERUN_for="$CODERUN_f"
export CODERUN_f90="$CODERUN_f"

Note This config is mostly ported from Code Runner.

💌 Credits

Special thanks to:






Made with ❤️ by NNB

Buy Me a Coffee

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].