From 6a67b473970d75438b6af6ce7eb161dd2a94feb8 Mon Sep 17 00:00:00 2001 From: Keegan Date: Fri, 26 Aug 2022 18:10:22 -0400 Subject: [PATCH] bluebike script working with fzf search. tweaked docker script --- bin/bluebikes/bb | 203 ++++++++++++++++++++++++++++++++++++ bin/bluebikes/conf.json | 24 ----- bin/bluebikes/get_status.sh | 57 ---------- bin/docker.sh | 6 +- bin/weather/main.go | 2 +- bin/weather/weather | Bin 2437609 -> 2437609 bytes tmux.conf | 2 +- zshrc | 2 +- 8 files changed, 209 insertions(+), 87 deletions(-) create mode 100755 bin/bluebikes/bb delete mode 100644 bin/bluebikes/conf.json delete mode 100755 bin/bluebikes/get_status.sh diff --git a/bin/bluebikes/bb b/bin/bluebikes/bb new file mode 100755 index 0000000..4854abb --- /dev/null +++ b/bin/bluebikes/bb @@ -0,0 +1,203 @@ +#!/usr/bin/env bash + +set -e + +usage() { + # basic usage statement + cat < "$WORKINGDIR/data/alias.json" +fi + +# finding station id +if [[ -e "$WORKINGDIR/data/.station" ]] ; then + # if file exists + source "$WORKINGDIR/data/.station" +fi + +# setting time for expiration +TIME=$(date +%s) +# allows customizing search window or dropping in dmenu +SEARCH="fzf-tmux --layout=reverse -p 50%,50% --border" # fzf window will float in tmux + + +get_station_info() { + if [[ -z "$STATIONID" ]] ; then + printf 'Please set a station with bb -s' >&2 + exit 1 + fi + + # if $UPDATE cleans folder and returns most recent info for $STATION_ID + if $UPDATE ; then + printf '%s: %s\n' $(date +%H:%M:%S) "updated station status" >> $LOG + BB_STATUS=$(curl --silent -fL https://gbfs.bluebikes.com/gbfs/en/station_status.json | gojq '.data') + EXPIRATION=$(($TIME + $timeout)) # sets expiration to be in 120 seconds + echo "$BB_STATUS" > "$WORKINGDIR/data/status/$EXPIRATION.json" + else + BB_STATUS=$(cat "$WORKINGDIR/data/status/"*.json | gojq '.data') # getting status from file + fi + # get relevant station info and set vars + BIKES=$(echo "$BB_STATUS" | gojq --arg id $STATIONID '.stations[] | select( .station_id == $id ) | .num_bikes_available' 2>/dev/null) + DOCKS=$(echo "$BB_STATUS" | gojq --arg id $STATIONID '.stations[] | select( .station_id == $id ) | .num_docks_available' 2>/dev/null) + #echo "$BIKES" "$DOCKS" +} + +check_update() { + # sets $UPDATE to bool + lst="$WORKINGDIR/data/status/*" + if ls $lst 1>/dev/null 2>&1 ; then + # file exists + printf '%s: %s\n' $(date +%H:%M:%S) "found status file" >> $LOG + OLD_EXPIRATION=$(ls "$WORKINGDIR/data/status" | tr -d '.json' | sort -n | tail -n 1) # gets latest file + if [[ $OLD_EXPIRATION -lt $TIME ]] ; then + # file is expired + printf '%s: %s\n' $(date +%H:%M:%S) "removing old status files" >> $LOG + rm "$WORKINGDIR/"data/status/*.json + UPDATE=true + fi + else + UPDATE=true + fi +} + + +update_station() { + # provides a gui to update the station to watch + printf '%s: %s\n' $(date +%H:%M:%S) "updating station to watch" >> $LOG + STATIONS=$(curl --silent -fL https://gbfs.bluebikes.com/gbfs/en/station_information.json | gojq '.data') + if [[ -z "$STATIONS" ]] ; then + printf 'Error retrieving station info! Check your connection' >&2 + exit 1 + fi + + # all associated data for the specific ids + condensed=$(echo "$STATIONS" | gojq '[.stations[] | {name: .name, id: .station_id} ]') # [{ name:, id: }, ...] + # prompt user to search + station_list=$(echo "$condensed" | gojq '.[].name' | tr -d '"' ) + new_station=$(echo "$station_list" | eval "$SEARCH") + if [[ -z "$new_station" ]] ; then + exit 0 + fi + # number correlating to selected name + STATIONID=$(echo "$condensed"| gojq --arg name "$new_station" '.[] | select( .name == $name) | .id' | tr -d '"') # trim quotes + # setting data/.station file + output=$(printf 'STATIONID=%s\nSTATION_NAME="%s"\n' "$STATIONID" "$new_station") + echo "$output" > "$WORKINGDIR/data/.station" +# echo "$output" +} + + +output_status() { + # reads $OUTPUT and the Index value + get_station_info # sets $DOCKS $BIKES and $STATIONID + NAME="$STATION_NAME" + if [[ -e "$WORKINGDIR/data/alias.json" ]] ; then + alias=$(cat "$WORKINGDIR/data/alias.json" | gojq --arg id "$STATIONID" '.stations.[] | select(.id == $id) | .alias') + if [[ ! -z "$alias" ]] ; then + NAME="$alias" + fi + fi + + printf '%d  %d  %s' "$DOCKS" "$BIKES" "$(echo "$NAME" | tr -d '"')" +} + +set_station_alias() { + # sets $ALIAS for $STATION_ID + + if [[ -z "$STATIONID" ]] ; then + # no station id + printf 'No Station set to change name for\nPlease run bb -s to set a station' >&2 + exit 1 + fi + + aliases=$(cat "$WORKINGDIR/data/alias.json") # alias json + + if [[ -z "$ALIAS" ]] ; then + # no arguement for rename, clearing + exists=$(echo "$aliases" | gojq --arg id "$STATIONID" '.stations.[] | select(.id == $id)') # will get an alias for the id + if [[ ! -z "$exists" ]] ; then + # alias exists wipe it + aliases=$(gojq --arg id "$STATIONID" '.stations |= [ .[] | select(.id != $id)]' <<<"$aliases") + echo "$aliases" > "$WORKINGDIR/data/alias.json" + fi + else + # rename to $ALIAS + exists=$(echo "$aliases" | gojq --arg id "$STATIONID" '.stations.[] | select(.id == $id)') # will get an alias for the id + if [[ -z "$exists" ]]; then + # create entry + entryjson=$(printf '{"name": "%s", "id": "%s", "alias": "%s"}' "$STATION_NAME" "$STATIONID" "$ALIAS" | gojq '.') + aliases=$(gojq --argjson entry "$entryjson" '.stations |= . + [$entry]' <<<"$aliases") + else + # update entry + + aliases=$(echo "$aliases" | gojq --arg id "$STATIONID" --arg als "$ALIAS" '.stations |= [ .[] | select(.id == $id) | .alias |= $als]') + + fi + echo "$aliases" > "$WORKINGDIR/data/alias.json" + fi +} + +if [[ $# -eq 0 ]] ; then + # no args passed + check_update + output_status +fi + +while [[ $# -gt 0 ]] ; do + # loop over args if present + case $1 in + -h | --help) + usage + exit 0 + ;; + -s | --search) + update_station + ;; + -f | --force) + # force reload bike status + UPDATE=true + output_status + ;; + -r | --rename) + ALIAS="$2" + set_station_alias # arguement might be in $2 + exit 0 # ensure we exit + ;; + *) + echo "Error: bb" >&2 + usage + exit 1 + ;; + esac + shift # shift over the args before loop +done + +# any other case would throw an error in the while loop as an unrecognized arguement diff --git a/bin/bluebikes/conf.json b/bin/bluebikes/conf.json deleted file mode 100644 index 391db0b..0000000 --- a/bin/bluebikes/conf.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "stations": [ - { - "name": "Mass Ave / Amherst", - "station_id": 67 - }, - { - "name": "Longfellow Elementary", - "station_id": 413 - }, - { - "name": "BCI", - "station_id": 80 - }, - { - "name": "Stata", - "station_id": 107 - }, - { - "name": "Grad Housing", - "station_id": 179 - } - ] -} diff --git a/bin/bluebikes/get_status.sh b/bin/bluebikes/get_status.sh deleted file mode 100755 index 5bb92df..0000000 --- a/bin/bluebikes/get_status.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/env bash - -# constants -timeout=120 # in seconds -refresh_rate=10 # display each station for 10 seconds -WORKINGDIR="$HOME/.dotfiles/bin/bluebikes" - -if [[ ! -d "$WORKINGDIR/data" ]] ; then - mkdir -p "$WORKINGDIR/data" -fi - -# getting time and existing information -TIME=$(date +%s) -OLD_EXPIRATION=$(ls "$WORKINGDIR/data" | cut -d '.' -f 1 2>/dev/null) # removes .json extension - -get_station_info() { - # cleans data folder and leaves only most recent copy - rm "$WORKINGDIR/data/"*.json 2>/dev/null - BB_STATUS=$(curl --silent -fL https://gbfs.bluebikes.com/gbfs/en/station_status.json) - EXPIRATION=$(($TIME + 120)) # sets expiration to be in 120 seconds - echo "$BB_STATUS" > "$WORKINGDIR/data/$EXPIRATION.json" - #echo $EXPIRATION -} - -update_stations() { - # checks to see if we are out of date and sets $output to be station info - if [[ -z $OLD_EXPIRATION || $OLD_EXPIRATION -lt $EXPIRATION ]] ; then - # file doesn't exist or is more than a minute old - get_station_info - fi - - STATIONS=$(cat "$WORKINGDIR/conf.json" | gojq '.stations') # stations we care about from config file - STATION_INFO=$(cat "$WORKINGDIR/"data/*.json 2>/dev/null) # all station information - - # all associated data for the specific ids - info=$(echo "$STATION_INFO" | gojq --argjson js "$STATIONS" '[.data.stations[] | select( .station_id as $id | $js.[].station_id | tostring | . == $id )]') - # only available bikes/docks for the required ids - output=$(echo "$info" | gojq --argjson names "$STATIONS" '[ .[] | .station_id as $id | { bikes: .num_bikes_available, docks: .num_docks_available, station: $names.[] | select( .station_id | tostring | . == $id ) | .name }]') - -# echo "$output" -} - - -output_status() { - # reads $OUTPUT and the Index value - minute=$(date +%M | tr -d '0') - tot=$(echo "$STATIONS" | gojq '. | length') # display one per minute - index=$(( $minute % $tot )) - bikes=$(echo "$output" | gojq --arg indx $index '.[$indx | tonumber ].bikes') - docks=$(echo "$output" | gojq --arg indx $index '.[$indx | tonumber ].docks') - station=$(echo "$output" | gojq --arg indx $index '.[$indx | tonumber ].station' | tr -d '"') - printf '%d  %d  %s' "$docks" "$bikes" "$station" -} - -update_stations # sets $output to be all the stations we are interested in -output_status # echos correct station info based on index and time - diff --git a/bin/docker.sh b/bin/docker.sh index 27e54a0..8915d4f 100755 --- a/bin/docker.sh +++ b/bin/docker.sh @@ -5,9 +5,9 @@ if [[ -z $EXISTS ]] ; then echo "" else DOCKER_STATUS=$(docker info) - CONTAINERS=$(echo "$DOCKER_STATUS" | awk '/Containers/ {print $2}') + #CONTAINERS=$(echo "$DOCKER_STATUS" | awk '/Containers/ {print $2}') RUNNING=$(echo "$DOCKER_STATUS" | awk '/Running/ {print $2}') - STOPPED=$(echo "$DOCKER_STATUS" | awk '/Stopped/ {print $2}') + #STOPPED=$(echo "$DOCKER_STATUS" | awk '/Stopped/ {print $2}') IMAGES=$(echo "$DOCKER_STATUS" | awk '/Images/ {print $2}') - echo -e "\ue7b0 $RUNNING \ufb99 $STOPPED \uf1c5 $IMAGES" + echo -e "\ue7b0 $RUNNING \uf1c5 $IMAGES" fi diff --git a/bin/weather/main.go b/bin/weather/main.go index 61aebec..cf39ab9 100644 --- a/bin/weather/main.go +++ b/bin/weather/main.go @@ -35,7 +35,7 @@ const ( ) func (w *Weather) String() string { - return fmt.Sprintf(" %c %.1f%c %d%c in %s", w.Icon, w.Temp, DEGREES_F, w.Humidity, HUMIDITY, w.City) // Output as ICON ##.#*F ##% in City, ST where the rune is a degree sign + return fmt.Sprintf(" %c %.1f%c %d%c in %s", w.Icon, w.Temp, DEGREES_F, w.Humidity, HUMIDITY, w.City) // Output as ICON ##.#*F ##% in City, ST where the rune is a degree sign } func main() { diff --git a/bin/weather/weather b/bin/weather/weather index 42ada02544587c9b8f9f2a02c22136902255d28b..bdf73a6e75b1dbd38a6c2ad3e7105294db83af3b 100755 GIT binary patch delta 46206 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 delta 46262 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