#!/usr/bin/env bash

if which tput >/dev/null 2>&1; then
    ncolors=$(tput colors)
fi
if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then
    RED="$(tput setaf 1)"
    GREEN="$(tput setaf 2)"
    YELLOW="$(tput setaf 3)"
    BLUE="$(tput setaf 4)"
    MAGENTA="$(tput setaf 5)"
    CYAN="$(tput setaf 6)"
    BOLD="$(tput bold)"
    NORMAL="$(tput sgr0)"
else
    RED=""
    GREEN=""
    YELLOW=""
    BLUE=""
    MAGENTA=""
    CYAN=""
    BOLD=""
    NORMAL=""
fi

error() {
    printf "${BOLD}${RED}$1${NORMAL}"
}

abort() {
    error "\nAborting...\n"
    exit 1
}

set -e

cwd=$PWD

printf "${BOLD}Attempting to connect to device via adb...\nMake sure 'file transfer' mode is set on device. You may have to accept the connection and then re-run this script.\n${NORMAL}"

adb forward tcp:9222 localabstract:chrome_devtools_remote

src=_tabs.json
if wget -qO $src http://localhost:9222/json/list; then
    ts=`date +"%Y-%m-%d_%H-%M-%S"`
    dest="${cwd}/${ts}_android-chrome-tabs.md"
    sed -n "/\"url\"/p" $src | sed -e "s/^[ \t]*.\{8\}//" -e "s/.\{2\}$//" > $dest
    printf "${BOLD}Saved tabs to: ${YELLOW}$dest${NORMAL}\n"
else
    error "Unable to download tabs from device!\n"
fi

rm $src