#!/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