quran

English translation of the Quran from the command line
git clone https://riazj.com/git/quran
Log | Files | Refs | README | LICENSE

commit 56327a7afc722a18a119997929c1dd44f493ee02
parent 810c289caf9f4c654def88bfe7adf957cc56f255
Author: Riaz <riaz@riazj.com>
Date:   Thu, 26 Jun 2025 18:15:52 -0700

Simplify checks for what should be read

Diffstat:
Mquran | 37+++++++++++++++----------------------
1 file changed, 15 insertions(+), 22 deletions(-)

diff --git a/quran b/quran @@ -43,8 +43,8 @@ read_ayah() { read_ayat() { start_ayah="${1#*:}"; start_ayah="${start_ayah%-*}"; end_ayah="${1#*-}" - [ "$start_ayah" -le "$end_ayah" ] || error "$start_ayah-$end_ayah: invalid range of ayat" + [ "$start_ayah" -le "$end_ayah" ] || error "$start_ayah-$end_ayah: invalid range of ayat" while [ "$start_ayah" -le "$end_ayah" ]; do grep "\[$surah:$start_ayah\]" "$QURAN" || error "$surah:$start_ayah: ayah not found" start_ayah=$((start_ayah+1)) @@ -68,29 +68,22 @@ read_surahs() { exit } -echo "$1" | grep -q "^[[:digit:]]\+:[[:digit:]]\+$" && - surah="${1%:*}" && read_ayah "$1" - -echo "$1" | grep -q "^[[:digit:]]\+:[[:digit:]]\+-[[:digit:]]\+$" && - surah="${1%:*}" && read_ayat "$1" - -echo "$1" | grep -q "^[[:digit:]]\+$" && read_surah "$1" - -echo "$1" | grep -q "^[[:digit:]]\+-[[:digit:]]\+$" && - read_surahs "${1%-*}" "${1#*-}" - -echo "$1" | grep -q "^[[:alpha:]]\+:[[:digit:]]\+$" && ayah="${1#*:}" && - get_surah_number "$1" && read_ayah "$surah:$ayah" +echo "$1" | grep -q "^[[:digit:]]\+:[[:digit:]]\+$" || + echo "$1" | grep -q "^[[:alpha:]]\+:[[:digit:]]\+$" && + { get_surah_number "$1"; ayah="${1#*:}"; read_ayah "$surah:$ayah"; } -echo "$1" | grep -q "^[[:alpha:]]\+:[[:digit:]]\+-[[:digit:]]\+$" && - get_surah_number "$1" && read_ayat "$1" +echo "$1" | grep -q "^[[:digit:]]\+:[[:digit:]]\+-[[:digit:]]\+$" || + echo "$1" | grep -q "^[[:alpha:]]\+:[[:digit:]]\+-[[:digit:]]\+$" && + { get_surah_number "$1"; read_ayat "$1"; } -echo "$1" | grep -q "^[[:alpha:]]\+$" && get_surah_number "$1" && - read_surah "$surah" +echo "$1" | grep -q "^[[:digit:]]\+$" || + echo "$1" | grep -q "^[[:alpha:]]\+$" && + { get_surah_number "$1"; read_surah "$surah"; } -echo "$1" | grep -q "^[[:alpha:]]\+-[[:alpha:]]\+$" && - get_surah_number "${1%-*}" && start_surah=$surah && - get_surah_number "${1#*-}" && end_surah=$surah && - read_surahs "$start_surah" "$end_surah" +echo "$1" | grep -q "^[[:digit:]]\+-[[:digit:]]\+$" || + echo "$1" | grep -q "^[[:alpha:]]\+-[[:alpha:]]\+$" && + { get_surah_number "${1%-*}"; start_surah=$surah + get_surah_number "${1#*-}"; end_surah=$surah + read_surahs "$start_surah" "$end_surah"; } error "invalid command: see quran -h"