#!/usr/bin/env bash # Quick code execution for calculations and data processing # Usage: calc "expression" # calc -p "python code" # calc -j "javascript code" set -e MODE="python" CODE="" show_help() { echo "Usage: calc [options] \"code\"" echo "" echo "Options:" echo " -p, --python Python mode (default)" echo " -j, --js JavaScript mode (Node.js)" echo " -h, --help Show this help" echo "" echo "Examples:" echo " calc \"2 + 2\" # Quick math" echo " calc \"sum([1,2,3,4,5])\" # Python functions" echo " calc -p \"import math; math.pi\" # Python with imports" echo " calc -j \"[1,2,3].map(x => x*2)\" # JavaScript" echo "" echo "Python mode has these pre-imported:" echo " math, json, re, datetime, random, statistics" } while [[ $# -gt 0 ]]; do case $1 in -p|--python) MODE="python" shift ;; -j|--js) MODE="js" shift ;; -h|--help) show_help exit 0 ;; *) if [[ -z "$CODE" ]]; then CODE="$1" else CODE="$CODE $1" fi shift ;; esac done if [[ -z "$CODE" ]]; then show_help exit 1 fi case $MODE in python) python3 -c " import math, json, re, sys from datetime import datetime, date, timedelta from random import random, randint, choice from statistics import mean, median from collections import Counter, defaultdict result = $CODE if result is not None: print(result) " ;; js) node -e "console.log($CODE)" ;; esac