diff --git a/deepl-cli b/deepl-cli new file mode 100644 index 0000000..3528ae1 --- /dev/null +++ b/deepl-cli @@ -0,0 +1,54 @@ +#!/bin/bash + +# Configuration +# You need an API key. You can get it for free from https://www.deepl.com/pro-api +key="" +usage="usage: $0 [-h] [-l] target language [-t] text" +lang="IT" # Target language (EN, FR, ES, RU...) + +# API request +request () { + response=$(curl -s https://api-free.deepl.com/v2/translate -d auth_key="$key" -d "text=$2" -d "target_lang=$1") + echo $response +} + +# Main +while getopts ":hl:t:" option; do + case $option in + h) + echo $usage; + exit + ;; + l) + lang=${OPTARG^^} # Uppercase + ;; + t) + text=${OPTARG} # Text to translate + ;; + \?) + echo "error: option -$OPTARG is not implemented"; + exit + ;; + esac +done + +# Get stdin +if [ -z "$text" ] && [ -p /dev/stdin ]; then + text=$(cat /dev/stdin) +fi + +if [ -z "$text" ]; then + echo "error: text not provided or empty" + echo $usage + exit +fi + +if [ -z "$key" ]; then + echo "error: you need an API key. You can get it for free from https://www.deepl.com/pro-api" + echo $usage + exit +fi + +response=$(request $lang "$text") +# You can use jq, alternatively +echo $response | cut -d: -f4 | cut -d'"' -f2