diff --git a/earth_wallpaper.sh b/earth_wallpaper.sh index aaaf034..7d21785 100755 --- a/earth_wallpaper.sh +++ b/earth_wallpaper.sh @@ -11,14 +11,6 @@ cur_dir=$(dirname "${0}") # shellcheck disable=SC1091 [ -r "${cur_dir}/shared_functions.sh" ] && . "${cur_dir}/shared_functions.sh" -wallpaper_file="${HOME}/wallpaper.jpg" -wallpaper_file2="/etc/lightdm/background.jpg" -archive_folder="${HOME}/earth_pics" -screen_width=1366 -# `convert -list font` to get the list of fonts -font_name="Bitstream-Vera-Sans" -gsettings_cmd=$(which gsettings) -font_name=$("${gsettings_cmd}" get org.gnome.desktop.interface font-name | sed "s/'//g" | sed 's/ [0-9]*$//g') check_internet() { default_route=$(/sbin/route -n | egrep "^0.0.0.0") if [ "$default_route" == "" ]; then @@ -27,13 +19,80 @@ check_internet() { ping -q -c 2 en.wikipedia.org &> /dev/null return $? } + +check_font() { + font_name="${1}" + convert_cmd="$(which conver)" + if "${convert_cmd}" -list font | grep Font: | awk '{print($2)}' | grep font_name > /dev/null; then + return "${font_name}" + else + new_font_name="$("${convert_cmd}" -list font | grep Font: | awk '{print($2)}' |head -n 1)" + if [ "${new_font_name}" != "" ]; then + message "Couldn't find font '${font_name}' in the list from convert, so I'm using the first '${new_font_name}'" + return "${new_font_name}" + else + message "Error. No fonts available for convert!" p + exit 1 + fi + fi +} + +wallpaper_file="${HOME}/wallpaper.jpg" +wallpaper_file2="/etc/lightdm/background.jpg" +archive_folder="${HOME}/earth_pics" +screen_width=1366 +# `convert -list font` to get the list of fonts +font_name="Bitstream-Vera-Sans" +gsettings_cmd=$(which gsettings) +font_name=$("${gsettings_cmd}" get org.gnome.desktop.interface font-name | sed "s/'//g" | sed 's/ [0-9]*$//g') + +while [ $# -gt 0 ] +do + case "$1" in + "--wallpaper-file") + shift + wallpaper_file="${1}" + shift + ;; + "--archive-folder") + shift + archive_folder="${1}" + shift + ;; + "--screen-width") + shift + screen_width="${1}" + shift + ;; + "--font-name") + shift + font_name="${1}" + shift + ;; + "--debug") + shift + DEBUG=1 + ;; + '--logfile') + shift + LOG_FILE="$1" + shift + ;; + *) + message "Unknown parameter '${1}'" + shift + ;; + esac +done + check_internet || exit 1 +font_name="$(check_font "${font_name}")" message "Using font '${font_name}'" -wget_cmd=$(which wget) -if [ -z ${wget_cmd} ]; then - echo "It seems like wget is not installed." +curl_cmd=$(which curl) +if [ -z ${curl_cmd} ]; then + echo "It seems like curl is not installed." exit 3 fi @@ -46,7 +105,7 @@ str_city=$(echo "$city" | sed "s/ /_/g" -) message "str_city $str_city" wiki_url="https://en.wikipedia.org/wiki/$str_city" message "wiki_url $wiki_url" -wiki_content=$("${wget_cmd}" -q -O - $wiki_url) +wiki_content=$("${curl_cmd}" -s $wiki_url) latitude=$(echo $wiki_content | egrep -o "[0-9]{1,2}°[0-9]?[0-9]?′?[0-9]?[0-9]?″?[NS]" | head -n 1) message "latitude $latitude" longitude=$(echo $wiki_content | egrep -o "[0-9]{1,2}°[0-9]?[0-9]?′?[0-9]?[0-9]?″?[EW]" | head -n 1) @@ -103,7 +162,7 @@ date="$cur_date_$time" if [[ -e $wallpaper_file ]]; then rm "${wallpaper_file}" -rf fi -"${wget_cmd}" -q $url -O $wallpaper_file +"${curl_cmd}" -s $url > $wallpaper_file error_code=$? if [[ "$error_code" != "0" ]]; then echo "Error $error_code downloading image from '$url' to '$wallpaper_file'" @@ -116,7 +175,7 @@ if [[ "$o_longitude" == "West" ]]; then g_longitude="-$g_longitude" fi weather_url="http://api.wunderground.com/api/be78b9c2c0dbd00f/conditions/lang:ES/q/$g_latitude,$g_longitude.xml" -temperature=$("${wget_cmd}" -q -O - "$weather_url" | egrep -o "-?[0-9]*\.?[0-9]?" | sed "s///g" - | sed "s|||g" -) +temperature=$("${curl_cmd}" -s "$weather_url" | egrep -o "-?[0-9]*\.?[0-9]?" | sed "s///g" - | sed "s|||g" -) text="Image from $cur_date at $time\n$city $temperatureº C" convert_cmd=$(which convert) if [ ! -x "${convert_cmd}" ]; then