mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-01-30 02:44:42 +01:00
Features: - Add check for CoffeeScript compiler installation - Add input validation for all functions - Add proper error messages with usage information - Add clipboard operation feedback Improvements: - Replace aliases with proper functions for better control - Use local variables to prevent namespace pollution - Add proper quoting and option handling - Add error output redirection - Export functions for subshell availability The previous implementation lacked error checking and could fail silently in various scenarios. This update makes the functions more robust and user-friendly while maintaining the original functionality.
58 lines
1.4 KiB
Bash
58 lines
1.4 KiB
Bash
#!/bin/zsh
|
|
|
|
# Check if coffee is installed
|
|
if ! command -v coffee >/dev/null 2>&1; then
|
|
echo "Error: CoffeeScript compiler not found. Please install it with 'npm install -g coffee-script'" >&2
|
|
return 1
|
|
fi
|
|
|
|
# Compile a string of CoffeeScript and print to output
|
|
cf() {
|
|
if [[ -z "$1" ]]; then
|
|
echo "Error: No input provided" >&2
|
|
echo "Usage: cf 'CoffeeScript code'" >&2
|
|
return 1
|
|
fi
|
|
coffee -peb -- "$1" 2>/dev/null || {
|
|
echo "Error: Failed to compile CoffeeScript" >&2
|
|
return 1
|
|
}
|
|
}
|
|
|
|
# Compile & copy to clipboard
|
|
cfc() {
|
|
if [[ -z "$1" ]]; then
|
|
echo "Error: No input provided" >&2
|
|
echo "Usage: cfc 'CoffeeScript code'" >&2
|
|
return 1
|
|
fi
|
|
local result
|
|
result=$(cf "$1") || return 1
|
|
echo "$result" | clipcopy && echo "Compiled code copied to clipboard"
|
|
}
|
|
|
|
# Compile from clipboard & print
|
|
cfp() {
|
|
local input
|
|
input=$(clippaste)
|
|
if [[ -z "$input" ]]; then
|
|
echo "Error: Clipboard is empty" >&2
|
|
return 1
|
|
fi
|
|
cf "$input"
|
|
}
|
|
|
|
# Compile from clipboard and copy back to clipboard
|
|
cfpc() {
|
|
local input result
|
|
input=$(clippaste)
|
|
if [[ -z "$input" ]]; then
|
|
echo "Error: Clipboard is empty" >&2
|
|
return 1
|
|
fi
|
|
result=$(cf "$input") || return 1
|
|
echo "$result" | clipcopy && echo "Compiled code copied to clipboard"
|
|
}
|
|
|
|
# Export the functions
|
|
export -f cf cfc cfp cfpc
|