Stylistic changes to maps (#108)
This commit is contained in:
parent
fcd658c842
commit
983d8a9059
|
@ -8,15 +8,16 @@ directionsMapFlag="0"
|
|||
staticMapFlag="0"
|
||||
source ~/.bash_profile 2> /dev/null ## allows grabbing enviornment variable
|
||||
MAPQUEST_API_KEY=$MAPQUEST_API_KEY
|
||||
if [ -d ~/temp ];then rm -rf ~/temp;fi
|
||||
if [ -d ~/temp ]; then rm -rf ~/temp; fi
|
||||
|
||||
## This function determines which http get tool the system has installed and returns an error if there isnt one
|
||||
getConfiguredClient()
|
||||
{
|
||||
if command -v curl &>/dev/null ; then
|
||||
if command -v curl &>/dev/null; then
|
||||
configuredClient="curl"
|
||||
elif command -v wget &>/dev/null ; then
|
||||
elif command -v wget &>/dev/null; then
|
||||
configuredClient="wget"
|
||||
elif command -v fetch &>/dev/null ; then
|
||||
elif command -v fetch &>/dev/null; then
|
||||
configuredClient="fetch"
|
||||
else
|
||||
echo "Error: This tool reqires either curl, wget, or fetch to be installed."
|
||||
|
@ -24,18 +25,16 @@ getConfiguredClient()
|
|||
fi
|
||||
}
|
||||
|
||||
|
||||
## Allows to call the users configured client without if statements everywhere
|
||||
httpGet()
|
||||
{
|
||||
case "$configuredClient" in
|
||||
curl) curl -A curl -s "$@";;
|
||||
wget) wget -qO- "$@";;
|
||||
fetch) fetch -o "...";;
|
||||
curl) curl -A curl -s "$@" ;;
|
||||
wget) wget -qO- "$@" ;;
|
||||
fetch) fetch -o "..." ;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
checkInternet()
|
||||
{
|
||||
httpGet google.com > /dev/null 2>&1 || { echo "Error: no active internet connection" >&2; return 1; } # query google with a get request
|
||||
|
@ -49,12 +48,12 @@ update()
|
|||
repositoryName="Bash-Snippets" #Name of repostiory to be updated ex. Sandman-Lite
|
||||
githubUserName="alexanderepstein" #username that hosts the repostiory ex. alexanderepstein
|
||||
nameOfInstallFile="install.sh" # change this if the installer file has a different name be sure to include file extension if there is one
|
||||
latestVersion=$(httpGet https://api.github.com/repos/$githubUserName/$repositoryName/tags | grep -Eo '"name":.*?[^\\]",'| head -1 | grep -Eo "[0-9.]+" ) #always grabs the tag without the v option
|
||||
latestVersion=$(httpGet https://api.github.com/repos/$githubUserName/$repositoryName/tags | grep -Eo '"name":.*?[^\\]",'| head -1 | grep -Eo "[0-9.]+") #always grabs the tag without the v option
|
||||
|
||||
if [[ $currentVersion == "" || $repositoryName == "" || $githubUserName == "" || $nameOfInstallFile == "" ]];then
|
||||
if [[ $currentVersion == "" || $repositoryName == "" || $githubUserName == "" || $nameOfInstallFile == "" ]]; then
|
||||
echo "Error: update utility has not been configured correctly." >&2
|
||||
exit 1
|
||||
elif [[ $latestVersion == "" ]];then
|
||||
elif [[ $latestVersion == "" ]]; then
|
||||
echo "Error: no active internet connection" >&2
|
||||
exit 1
|
||||
else
|
||||
|
@ -62,16 +61,16 @@ update()
|
|||
echo "Version $latestVersion available"
|
||||
echo -n "Do you wish to update $repositoryName [Y/n]: "
|
||||
read -r answer
|
||||
if [[ "$answer" == "Y" || "$answer" == "y" ]] ;then
|
||||
cd ~ || { echo 'Update Failed' ; exit 1 ; }
|
||||
if [[ -d ~/$repositoryName ]]; then rm -r -f $repositoryName || { echo "Permissions Error: try running the update as sudo"; exit 1; } ; fi
|
||||
git clone "https://github.com/$githubUserName/$repositoryName" || { echo "Couldn't download latest version" ; exit 1; }
|
||||
cd $repositoryName || { echo 'Update Failed' ; exit 1 ;}
|
||||
if [[ "$answer" == [Yy] ]]; then
|
||||
cd ~ || { echo 'Update Failed'; exit 1; }
|
||||
if [[ -d ~/$repositoryName ]]; then rm -r -f $repositoryName || { echo "Permissions Error: try running the update as sudo"; exit 1; }; fi
|
||||
git clone "https://github.com/$githubUserName/$repositoryName" || { echo "Couldn't download latest version"; exit 1; }
|
||||
cd $repositoryName || { echo 'Update Failed'; exit 1; }
|
||||
git checkout "v$latestVersion" 2> /dev/null || git checkout "$latestVersion" 2> /dev/null || echo "Couldn't git checkout to stable release, updating to latest commit."
|
||||
chmod a+x install.sh #this might be necessary in your case but wasnt in mine.
|
||||
chmod a+x install.sh #this might be necessary in your case but wasn't in mine.
|
||||
./$nameOfInstallFile "update" || exit 1
|
||||
cd ..
|
||||
rm -r -f $repositoryName || { echo "Permissions Error: update succesfull but cannot delete temp files located at ~/$repositoryName delete this directory with sudo"; exit 1; }
|
||||
rm -r -f $repositoryName || { echo "Permissions Error: update succesfull but cannot delete temp files located at ~/$repositoryName delete this directory with sudo"; exit 1; }
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
@ -84,20 +83,19 @@ update()
|
|||
|
||||
getDirections()
|
||||
{
|
||||
response=$(httpGet "https://www.mapquestapi.com/directions/v2/route?key=$MAPQUEST_API_KEY&from=$1&to=$2&outFormat=json&ambiguities=ignore&routeType=fastest&doReverseGeocode=false&enhancedNarrative=false&avoidTimedConditions=false")
|
||||
firstDirection=$(echo $response | grep -Eo "origNarrative\":\"[a-Z -./0-9]*" | grep -Eo "[^origNarrative\":][a-Z -./0-9]*" )
|
||||
tempDirections=($(echo $response | grep -Eo "\"narrative\":\"[a-Z -./0-9]*"))
|
||||
distances=($(echo $response | grep -Eo "distance\":[0-9]*[.][0-9]*" | grep -Eo "[^distance\":][0-9]*[.][0-9]*" ))
|
||||
totalDist=${distances[0]}
|
||||
count="0"
|
||||
count="-1"
|
||||
temp=${tempDirections[0]}
|
||||
for direct in "${tempDirections[@]}"
|
||||
do
|
||||
if [[ $(echo $direct | grep -Eo "narrative" ) == "narrative" ]];then
|
||||
count=$(echo $count + 1 | bc )
|
||||
directions[$count]=$temp
|
||||
temp=$(echo $direct | grep -Eo "[^\"narrative:\"][a-Z 0-9./]*")
|
||||
response=$(httpGet "https://www.mapquestapi.com/directions/v2/route?key=$MAPQUEST_API_KEY&from=$1&to=$2&outFormat=json&ambiguities=ignore&routeType=fastest&doReverseGeocode=false&enhancedNarrative=false&avoidTimedConditions=false")
|
||||
firstDirection=$(echo $response | grep -Eo "origNarrative\":\"[a-Z -./0-9]*" | grep -Eo "[^origNarrative\":][a-Z -./0-9]*")
|
||||
tempDirections=($(echo $response | grep -Eo "\"narrative\":\"[a-Z -./0-9]*"))
|
||||
distances=($(echo $response | grep -Eo "distance\":[0-9]*[.][0-9]*" | grep -Eo "[^distance\":][0-9]*[.][0-9]*"))
|
||||
totalDist=${distances[0]}
|
||||
count="0"
|
||||
count="-1"
|
||||
temp=${tempDirections[0]}
|
||||
for direct in "${tempDirections[@]}"; do
|
||||
if [[ $(echo $direct | grep -Eo "narrative") == "narrative" ]]; then
|
||||
count=$(echo $count + 1 | bc)
|
||||
directions[$count]=$temp
|
||||
temp=$(echo $direct | grep -Eo "[^\"narrative:\"][a-Z 0-9./]*")
|
||||
else
|
||||
temp="$temp $direct"
|
||||
fi
|
||||
|
@ -111,9 +109,9 @@ getDirectionsMap()
|
|||
echo "Generating route map from $unformattedFromLocation to $unformattedToLocation"
|
||||
mkdir ~/temp || return 1
|
||||
httpGet "https://www.mapquestapi.com/staticmap/v5/map?start=$1&end=$2&size=600,400@2x&key=$MAPQUEST_API_KEY" >> ~/temp/routeImage.png || return 1
|
||||
if [[ "$OSTYPE" == "linux"* ]];then
|
||||
if [[ $(uname -s) == "Linux" ]]; then
|
||||
display ~/temp/routeImage.png > /dev/null || return 1
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
elif [[ $(uname -s) == "Darwin" ]]; then
|
||||
open ~/temp/routeImage.png > /dev/null
|
||||
fi
|
||||
rm -rf ~/temp > /dev/null
|
||||
|
@ -125,13 +123,12 @@ printDirections()
|
|||
echo "From $unformattedFromLocation to $unformattedToLocation ($totalDist mi)"
|
||||
echo "==================================================="
|
||||
count=0
|
||||
for direct in "${directions[@]}"
|
||||
do
|
||||
if [ $count -ne 0 ];then echo -n "$(echo $count | bc)). ";fi
|
||||
if [[ $direct != "" ]];then # sometimes original Narrative is blank
|
||||
for direct in "${directions[@]}"; do
|
||||
if [ $count -ne 0 ]; then echo -n "$(echo $count | bc)). "; fi
|
||||
if [[ $direct != "" ]]; then # sometimes original Narrative is blank
|
||||
direct="$direct (${distances[$(echo $count + 1 | bc)]} mi)"
|
||||
if [ $count -ne 0 ];then echo $direct;fi
|
||||
count=$(echo $count + 1 | bc )
|
||||
if [ $count -ne 0 ]; then echo $direct; fi
|
||||
count=$(echo $count + 1 | bc)
|
||||
fi
|
||||
done
|
||||
echo "Welcome to $unformattedToLocation"
|
||||
|
@ -147,14 +144,14 @@ getLocations()
|
|||
read toLocation
|
||||
unformattedFromLocation=$fromLocation
|
||||
unformattedToLocation=$toLocation
|
||||
fromLocation=$(echo $fromLocation | sed s/','/"+"/g | sed s/' '/"+"/g )
|
||||
toLocation=$(echo $toLocation | sed s/','/"+"/g | sed s/' '/"+"/g )
|
||||
fromLocation=$(echo $fromLocation | sed s/','/"+"/g | sed s/' '/"+"/g )
|
||||
toLocation=$(echo $toLocation | sed s/','/"+"/g | sed s/' '/"+"/g )
|
||||
}
|
||||
|
||||
checkImagemagick()
|
||||
{
|
||||
if [[ "$OSTYPE" == "linux"* ]];then
|
||||
if ! command -v display &>/dev/null ;then
|
||||
if [[ $(uname -s) == "Linux" ]]; then
|
||||
if ! command -v display &>/dev/null; then
|
||||
echo "Error: you need to install imagemagick to use map features." &>2
|
||||
return 1
|
||||
else
|
||||
|
@ -163,7 +160,6 @@ checkImagemagick()
|
|||
else
|
||||
return 0
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
getMapLocation()
|
||||
|
@ -178,9 +174,9 @@ getStaticMap()
|
|||
{
|
||||
mkdir ~/temp || return 1
|
||||
httpGet "https://www.mapquestapi.com/staticmap/v5/map?key=$MAPQUEST_API_KEY¢er=$1&zoom=15&type=hyb&size=600,400@2x" >> ~/temp/mapImage.png || return 1
|
||||
if [[ "$OSTYPE" == "linux"* ]];then
|
||||
if [[ $(uname -s) == "Linux" ]]; then
|
||||
display ~/temp/mapImage.png > /dev/null || return 1
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
elif [[ $(uname -s) == "Darwin" ]]; then
|
||||
open ~/temp/mapImage.png > /dev/null || return 1
|
||||
fi
|
||||
rm -rf ~/temp > /dev/null || return 1
|
||||
|
@ -215,48 +211,36 @@ checkInternet || exit 1
|
|||
## getDirectionsMap Denver Boulder || exit 1
|
||||
## getStaticMap Paramus || exit 1
|
||||
|
||||
|
||||
while getopts "drmuvh" opt; do
|
||||
case $opt in
|
||||
\?)
|
||||
echo "Invalid option: -$OPTARG" >&2
|
||||
exit 1
|
||||
;;
|
||||
h)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
d)
|
||||
directionsFlag="1"
|
||||
;;
|
||||
m)
|
||||
staticMapFlag="1"
|
||||
;;
|
||||
r)
|
||||
directionsMapFlag="1"
|
||||
;;
|
||||
v)
|
||||
echo "Version $currentVersion"
|
||||
exit 0
|
||||
;;
|
||||
u)
|
||||
update
|
||||
exit 0
|
||||
;;
|
||||
:)
|
||||
echo "Option -$OPTARG requires an argument." >&2
|
||||
exit 1
|
||||
;;
|
||||
case "$opt" in
|
||||
\?) echo "Invalid option: -$OPTARG" >&2
|
||||
exit 1
|
||||
;;
|
||||
h) usage
|
||||
exit 0
|
||||
;;
|
||||
d) directionsFlag="1" ;;
|
||||
m) staticMapFlag="1" ;;
|
||||
r) directionsMapFlag="1" ;;
|
||||
v) echo "Version $currentVersion"
|
||||
exit 0
|
||||
;;
|
||||
u) update
|
||||
exit 0
|
||||
;;
|
||||
:) echo "Option -$OPTARG requires an argument." >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ $directionsMapFlag == "1" && $directionsFlag == "0" ]];then { echo "Error the -r flag only works in conjunction with the -d flag."; exit 1; };fi
|
||||
if [[ $directionsMapFlag == "1" && $directionsFlag == "0" ]]; then { echo "Error the -r flag only works in conjunction with the -d flag."; exit 1; }; fi
|
||||
|
||||
if [[ $# == 0 ]]; then
|
||||
usage
|
||||
exit 0
|
||||
elif [[ $# == "1" ]]; then
|
||||
if [[ $1 == "update" ]];then
|
||||
if [[ $1 == "update" ]]; then
|
||||
update
|
||||
exit 0
|
||||
elif [[ $1 == "help" ]]; then
|
||||
|
@ -265,18 +249,18 @@ elif [[ $# == "1" ]]; then
|
|||
fi
|
||||
fi
|
||||
|
||||
if [[ $directionsFlag == "0" && $staticMapFlag == "1" ]];then
|
||||
if [[ $directionsFlag == "0" && $staticMapFlag == "1" ]]; then
|
||||
checkImagemagick || exit 1
|
||||
getMapLocation || exit 1
|
||||
getStaticMap $mapLocation || exit 1
|
||||
elif [[ $directionsFlag == "1" ]];then
|
||||
elif [[ $directionsFlag == "1" ]]; then
|
||||
getLocations || exit 1
|
||||
getDirections $fromLocation $toLocation || exit 1
|
||||
printDirections $fromLocation $toLocation || exit 1
|
||||
checkImagemagick || exit 1
|
||||
if [[ $directionsMapFlag == "1" ]];then getDirectionsMap $fromLocation $toLocation || exit 1;fi
|
||||
if [[ $staticMapFlag = "1" ]];then
|
||||
echo "Generating static map for $unformattedFromLocation" && getStaticMap $fromLocation || exit 1
|
||||
echo "Generating static map for $unformattedToLocation" && getStaticMap $toLocation || exit 1
|
||||
if [[ $directionsMapFlag == "1" ]]; then getDirectionsMap $fromLocation $toLocation || exit 1; fi
|
||||
if [[ $staticMapFlag = "1" ]]; then
|
||||
echo "Generating static map for $unformattedFromLocation" && getStaticMap $fromLocation || exit 1
|
||||
echo "Generating static map for $unformattedToLocation" && getStaticMap $toLocation || exit 1
|
||||
fi
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue