36 lines
		
	
	
		
			893 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			893 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
# Usage:
 | 
						|
#   ./fetch-language-hashes <tessdataRev> [<language code>…]
 | 
						|
#
 | 
						|
#   Fetches all languages if no language codes are given.
 | 
						|
#
 | 
						|
# Example:
 | 
						|
#   ./fetch-language-hashes 4.0.0 eng spa
 | 
						|
#
 | 
						|
#   Output:
 | 
						|
#     eng = "0iy0...";
 | 
						|
#     spa = "15kw...";
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
(( $# >= 1 )) || exit 1
 | 
						|
tessdataRev=$1
 | 
						|
shift
 | 
						|
 | 
						|
if (( $# > 0 )); then
 | 
						|
    langCodes="$@"
 | 
						|
else
 | 
						|
    repoPage=$(curl -fs https://github.com/tesseract-ocr/tessdata/tree/$tessdataRev || {
 | 
						|
                   >&2 echo "Invalid tessdataRev: $tessdataRev"
 | 
						|
                   exit 1
 | 
						|
               })
 | 
						|
    langCodes=$(echo $(echo "$repoPage" | grep -ohP "(?<=/)[^/ ]+?(?=\.traineddata)" | sort -u))
 | 
						|
fi
 | 
						|
 | 
						|
for lang in $langCodes; do
 | 
						|
    url=https://github.com/tesseract-ocr/tessdata/raw/$tessdataRev/$lang.traineddata
 | 
						|
    hash=$(nix hash to-sri --type sha256 $(nix-prefetch-url $url 2>/dev/null))
 | 
						|
    echo "$lang = \"$hash\";"
 | 
						|
done
 |