65 lines
1.7 KiB
Bash
Executable file
65 lines
1.7 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Error handling
|
|
set -e
|
|
|
|
# For styling/colorizing output
|
|
txtbld=$(tput bold)
|
|
txtblue=${txtbld}$(tput setaf 4)
|
|
txtred=${txtbld}$(tput setaf 1)
|
|
txtyellow=${txtbld}$(tput setaf 3)
|
|
txtwhite=${txtbld}$(tput setaf 7)
|
|
|
|
# Dependency check
|
|
function dependencycheck()
|
|
{
|
|
numdependencies="$#"
|
|
dependencies=("$@")
|
|
missingdependencies=0
|
|
|
|
for ((i = 0; i < numdependencies; i++)) ; do
|
|
if ! command -v "${dependencies[$i]}" &> /dev/null
|
|
then
|
|
echo "${txtred}dependency not met: ${dependencies[$i]}${txtwhite}"
|
|
missingdependencies=$((missingdependencies+1))
|
|
fi
|
|
done
|
|
|
|
if [ $missingdependencies -gt 0 ] ; then
|
|
echo "${txtred}Please install needed dependencies${txtwhite}"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
dependencycheck python3 pip3 seoanalyze echo sed
|
|
|
|
# check number of arguments, if not 1, exit 1
|
|
if [ "$#" -ne 1 ]; then
|
|
echo "${txtred}Improper Usage!"
|
|
echo "${txtblue}Example: seo google.com${txtwhite}"
|
|
exit 1
|
|
fi
|
|
|
|
echo "${txtblue}seoanalyzer analyzing https://${1}..."
|
|
# grabs the url before the .com or .org, etc
|
|
# does not work with multiple periods in url
|
|
url=$(echo "${1}" | sed 's/\..*$//')
|
|
|
|
finalreport="${url}".seo.report.html
|
|
# all the actual work being done...
|
|
seoanalyze https://"${1}" --output-format html > "${finalreport}"
|
|
echo "${txtyellow}seoanalyzer complete!${txtblue}"
|
|
echo "report file: ${finalreport}"
|
|
|
|
#if the user has a default browser,
|
|
# then prompt if they would like to view the report in the browser
|
|
if [ -n "${BROWSER}" ] ; then
|
|
read -e -r -p "would you like to view it in $BROWSER?(y/n): ${txtyellow}" viewinbrowser
|
|
if [[ $viewinbrowser == "y" || $viewinbrowser == "yes" ]]; then
|
|
$BROWSER "${finalreport}"
|
|
else
|
|
exit 0
|
|
fi
|
|
else
|
|
exit 0
|
|
fi
|