mirror of
https://github.com/cosinekitty/astronomy.git
synced 2026-03-23 17:03:37 -04:00
Decided to move call to makedoc script from run script. It was confusing that it was hidden inside unit_test_js, especially because it invokes the code generator for all supported languages.
107 lines
3.1 KiB
Bash
Executable File
107 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
Fail()
|
|
{
|
|
echo "ERROR($0): $1"
|
|
exit 1
|
|
}
|
|
|
|
IsInstalled()
|
|
{
|
|
type "$1" > /dev/null 2>&1
|
|
return $?
|
|
}
|
|
|
|
OUTDIR=../source
|
|
EPHFILE=lnxp1600p2200.405
|
|
# EPHURL=ftp://ssd.jpl.nasa.gov/pub/eph/planets/Linux/de405/${EPHFILE}
|
|
EPHURL=https://github.com/cosinekitty/ephemeris/raw/master/${EPHFILE}
|
|
|
|
if [[ ! -f ${EPHFILE} ]]; then
|
|
echo ""
|
|
echo "Ephemeris file not found: ${EPHFILE}"
|
|
echo "Trying to download for you from:"
|
|
echo "${EPHURL}"
|
|
echo ""
|
|
if IsInstalled wget; then
|
|
wget_success=false
|
|
for attempt in {1..10}; do
|
|
if [[ ${attempt} > 1 ]]; then
|
|
echo "wget failed (attempt ${attempt} of 10) -- will retry download in 9 seconds..."
|
|
sleep 9
|
|
fi
|
|
if wget ${EPHURL}; then
|
|
echo "wget successfully downloaded the ephemeris file."
|
|
wget_success=true
|
|
break
|
|
fi
|
|
done
|
|
[[ ${wget_success} == true ]] || Fail "Could not download using wget: ${EPHFILE}"
|
|
elif IsInstalled curl; then
|
|
curl -L -o ${EPHFILE} ${EPHURL} || Fail "Could not download using curl: ${EPHFILE}"
|
|
else
|
|
echo "Neither wget nor curl is installed. Use your browser to download"
|
|
echo "the file at the URL above into this directory."
|
|
echo "Then run this script again to continue."
|
|
exit 1
|
|
fi
|
|
|
|
if IsInstalled sha256sum; then
|
|
if sha256sum -c ephemeris.sha256; then
|
|
echo "Validated download using sha256 checksum."
|
|
else
|
|
rm -f ${EPHFILE}
|
|
Fail "Detected corrupt ephemeris file: failed sha256 check."
|
|
fi
|
|
elif IsInstalled md5sum; then
|
|
if md5sum -c ephemeris.md5; then
|
|
echo "Validated download using md5 checksum."
|
|
else
|
|
rm -f ${EPHFILE}
|
|
Fail "Detected corrupt ephemeris file: failed md5 check."
|
|
fi
|
|
else
|
|
echo "Warning: could not validate ephemeris file with md5 or sha256."
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo "Building C source code for 'generate' program."
|
|
./build || Fail "Could not build 'generate' program from source."
|
|
|
|
mkdir -pv output temp || Fail "Error creating directories."
|
|
rm -f temp/*
|
|
|
|
FASTMODE=true
|
|
for file in output/vsop_{0,1,3,4,5,6,7,11}.txt output/08.eph; do
|
|
if [[ ! -f ${file} ]]; then
|
|
echo "Missing required planet model file: ${file}"
|
|
FASTMODE=false
|
|
fi
|
|
done
|
|
|
|
if [[ "${FASTMODE}" == "false" ]]; then
|
|
echo ""
|
|
echo "Generating planet models."
|
|
rm -f output/vsop_*.txt output/*.eph
|
|
./generate planets || Fail "Could not generate planet models."
|
|
fi
|
|
|
|
./makedoc || exit $?
|
|
./unit_test_csharp || exit $?
|
|
./unit_test_js || exit $?
|
|
./unit_test_c || exit $?
|
|
./unit_test_python || exit $?
|
|
|
|
echo ""
|
|
echo "Testing example programs."
|
|
cd ../demo/c || Fail "Cannot change directory to ../demo/c"
|
|
test/test || Fail "Error testing C examples"
|
|
cd ../nodejs || Fail "Cannot change directory to ../nodejs"
|
|
test/test || Fail "Error testing nodejs examples."
|
|
cd ../python || Fail "Cannot change directory to ../python"
|
|
test/test || Fail "Error testing Python examples."
|
|
cd ../../generate || Fail "Cannot change back to generate directory."
|
|
|
|
cat pass.txt
|
|
exit 0
|