From f5048da5a942be341eccbae0e99f405622b8151d Mon Sep 17 00:00:00 2001 From: Alex Epstein Date: Sun, 2 Jul 2017 21:34:34 -0400 Subject: [PATCH] Adding cheat component --- README.md | 20 +++- changelog.md | 9 ++ cheat/cheat | 226 +++++++++++++++++++++++++++++++++++++++++++++ cheat/cheat.png | Bin 0 -> 59103 bytes cheat/install.sh | 6 ++ cheat/uninstall.sh | 5 + install.sh | 21 +++++ uninstall.sh | 10 ++ 8 files changed, 294 insertions(+), 3 deletions(-) create mode 100755 cheat/cheat create mode 100644 cheat/cheat.png create mode 100755 cheat/install.sh create mode 100755 cheat/uninstall.sh diff --git a/README.md b/README.md index d8a3e5b..ed8e2ad 100644 --- a/README.md +++ b/README.md @@ -62,8 +62,8 @@ Provides information about a certain stock symbol - -  Written by: Jake Meyer + +  Written by: Jake Meyer ## Currency @@ -115,6 +115,19 @@ Quick search that grabs relevant information about a movie + +## Cheat + + +The fastest way to find {command options|code pieces} you need + +
+ + + +
+ + ## Taste Recommendation engine that provides three similar items like the supplied item @@ -148,10 +161,11 @@ Gets the link that is being masked by a url shortner * To get location based on ip address:
ipinfo.io * To get and print weather based on a location: wttr.in * To grab the stock information in JSON format: alphavantage.co -* To grab the latest exchange rate between currencies: api.fixer.io +* To grab the latest exchange rate between currencies: fixer.io * To grab information on movies: omdbapi.com * To grab recommendations based on an item: tastedive.com * To determine masked link behind url shortner: x.datasig.io +* To grab cheatsheets for commands and languages: cheat.sh #### Inspired by: Ruby-Scripts ## Installing diff --git a/changelog.md b/changelog.md index eb3d25c..532ea1f 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,15 @@ # Bash-Snippets Changelog +## Version 1.7.0 + + + +### Changes +* Added cheat component + +
+ ## Version 1.6.0
diff --git a/cheat/cheat b/cheat/cheat new file mode 100755 index 0000000..dd5c320 --- /dev/null +++ b/cheat/cheat @@ -0,0 +1,226 @@ +#!/bin/bash +# Author: Alexander Epstein https://github.com/alexanderepstein + +currentVersion="1.6.0" +configuredClient="" +search="0" +insensitive="" +recursive="" +boundry="" + +## This function determines which http get tool the system has installed and returns an error if there isnt one +getConfiguredClient() +{ + if command -v curl &>/dev/null ; then + configuredClient="curl" + elif command -v wget &>/dev/null ; then + configuredClient="wget" + elif command -v fetch &>/dev/null ; then + configuredClient="fetch" + else + echo "Error: This tool reqires either curl, wget, or fetch to be installed." + return 1 + fi + +} + +## Allows to call the users configured client without if statements everywhere +httpGet() +{ + case "$configuredClient" in + curl) curl -A curl -s "$@";; + wget) wget -qO- "$@";; + fetch) fetch -o "...";; + esac +} + + +checkInternet() +{ + echo -e "GET http://google.com HTTP/1.0\n\n" | nc google.com 80 > /dev/null 2>&1 # query google with a get request + if [ $? -eq 0 ]; then #check if the output is 0, if so no errors have occured and we have connected to google successfully + return 0 + else + echo "Error: no active internet connection" >&2 #sent to stderr + return 1 + fi +} + +update() +{ + # Author: Alexander Epstein https://github.com/alexanderepstein + # Update utility version 1.2.0 + # To test the tool enter in the defualt values that are in the examples for each variable + repositoryName="Bash-Snippets" #Name of repostiory to be updated ex. Sandman-Lite + githubUserName="alexanderepstein" #username that hosts the repostiory ex. alexanderepstein + nameOfInstallFile="install.sh" # change this if the installer file has a different name be sure to include file extension if there is one + latestVersion=$(httpGet https://api.github.com/repos/$githubUserName/$repositoryName/tags | grep -Eo '"name":.*?[^\\]",'| head -1 | grep -Eo "[0-9.]+" ) #always grabs the tag without the v option + + if [[ $currentVersion == "" || $repositoryName == "" || $githubUserName == "" || $nameOfInstallFile == "" ]];then + echo "Error: update utility has not been configured correctly." >&2 + exit 1 + elif [[ $latestVersion == "" ]];then + echo "Error: no active internet connection" >&2 + exit 1 + else + if [[ "$latestVersion" != "$currentVersion" ]]; then + echo "Version $latestVersion available" + echo -n "Do you wish to update $repositoryName [Y/n]: " + read -r answer + if [[ "$answer" == "Y" || "$answer" == "y" ]] ;then + cd ~ || { echo 'Update Failed' ; exit 1 ; } + if [[ -d ~/$repositoryName ]]; then rm -r -f $repositoryName || { echo "Permissions Error: try running the update as sudo"; exit 1; } ; fi + git clone "https://github.com/$githubUserName/$repositoryName" || { echo "Couldn't download latest version" ; exit 1; } + cd $repositoryName || { echo 'Update Failed' ; exit 1 ;} + git checkout "v$latestVersion" 2> /dev/null || git checkout "$latestVersion" 2> /dev/null || echo "Couldn't git checkout to stable release, updating to latest commit." + chmod a+x install.sh #this might be necessary in your case but wasnt in mine. + ./$nameOfInstallFile "update" || exit 1 + cd .. + rm -r -f $repositoryName || { echo "Permissions Error: update succesfull but cannot delete temp files located at ~/$repositoryName delete this directory with sudo"; exit 1; } + else + exit 1 + fi + else + echo "$repositoryName is already the latest version" + fi + fi + +} + +usage() +{ + echo "Cheat tool" + echo "Usage: cheat [flags] [command] or cheat [flags] [programming language] [subject]" + echo " -s Does a search for last argument rather than looking for exact match" + echo " -i Case insensitive search" + echo " -b Word boundaries in search" + echo " -r Recursive search" + echo " -u Update Bash-Snippet Tools" + echo " -h Show the help" + echo " -v Get the tool version" + echo "Special Pages:" + echo " hello Describes building the hello world program written in the language" + echo " list This lists all cheatsheets related to previous arg if none it lists all cheatsheets" + echo " learn Shows a learn-x-in-minutes language cheat sheet perfect for getting started with the language" + echo " 1line A collection of one-liners in this language" + echo " weirdness A collection of examples of weird things in this language" +} + +getCheatSheet() +{ + if [[ $# == 1 ]]; then + if [[ $search == "1" ]];then + link=cheat.sh/~$1 + else + link=cheat.sh/$1 + fi + else + link=cheat.sh/$1 + fi + + if [[ $# == 2 ]];then + if [[ $search == "1" ]];then + link+=/~$2 + else + link+=/$2 + fi + fi + + if [[ $insensitive != "" || $recursive != "" || $boundry != "" ]];then link+=/$boundry$insensitive$recursive; fi + + httpGet $link +} + +checkSpecialPage() +{ + temp=$1 + if [[ $1 == "list" ]];then + temp=":list" + elif [[ $1 == "learn" ]];then + temp=":list" + elif [[ $1 == "styles" ]];then + temp=":styles" + fi + if [[ $2 == "1" ]];then + arg1=$temp + else + arg2=$temp + fi +} + +getConfiguredClient || exit 1 +checkInternet || exit 1 + +while getopts "ribuvhis" opt; do + case $opt in + \?) + echo "Invalid option: -$OPTARG" >&2 + exit 1 + ;; + h) + usage + exit 0 + ;; + v) + echo "Version $currentVersion" + exit 0 + ;; + u) + update + exit 0 + ;; + i) + insensitive="i" + search="1" + ;; + b) + boundry="b" + search="1" + ;; + r) + recursive="r" + search="1" + ;; + s) + search="1" + ;; + :) + echo "Option -$OPTARG requires an argument." >&2 + exit 1 + ;; + esac +done + +for arg +do + if [[ $arg != "-r" && $arg != "-s" && $arg != "-b" && $arg != "-i" ]];then + if [ -z ${arg1+x} ];then + arg1=$arg + fi + if [ ! -z ${arg1+x} ];then + arg2=$arg + fi + fi +done + +checkSpecialPage $arg1 1 +checkSpecialPage $arg2 2 + +if [[ $# == 0 ]]; then + usage + exit 0 +elif [[ $1 == "update" ]];then + update + exit 0 +elif [[ $1 == "help" ]];then + usage + exit 0 +else + if [[ $arg1 != $arg2 ]];then + getCheatSheet $arg1 $arg2 + else + getCheatSheet $arg1 + fi + exit 0 + +fi diff --git a/cheat/cheat.png b/cheat/cheat.png new file mode 100644 index 0000000000000000000000000000000000000000..f0ab885fdb4b07cbd665debde38a414dc7d470e2 GIT binary patch literal 59103 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 /dev/null 2>&1 || { echo "Failure"; echo "Error copying file, try running install script as sudo"; exit 1; } +echo "Success" diff --git a/cheat/uninstall.sh b/cheat/uninstall.sh new file mode 100755 index 0000000..33958ab --- /dev/null +++ b/cheat/uninstall.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# Author: Alexander Epstein https://github.com/alexanderepstein +echo -n "Removing cheat: " +rm -f /usr/local/bin/cheat > /dev/null 2>&1 || { echo "Failed" ; echo "Error removing file, try running uninstall script as sudo"; exit 1; } +echo "Success" diff --git a/install.sh b/install.sh index ae40808..e74b5cb 100755 --- a/install.sh +++ b/install.sh @@ -78,6 +78,15 @@ if [[ $# == 0 ]]; then cd .. || exit 1 fi + unset answer + echo -n "Do you wish to install cheat [Y/n]: " + read -r answer + if [[ "$answer" == "Y" || "$answer" == "y" ]] ;then + cd cheat || exit 1 + ./install.sh + cd .. || exit 1 + fi + fi @@ -113,6 +122,10 @@ elif [[ $1 == "geo" ]]; then cd geo || exit 1 ./install.sh || exit 1 cd .. || exit 1 +elif [[ $1 == "cheat" ]]; then + cd cheat || exit 1 + ./install.sh || exit 1 + cd .. || exit 1 elif [[ $1 == "all" ]];then cd currency || exit 1 ./install.sh || exit 1 @@ -138,6 +151,9 @@ elif [[ $1 == "all" ]];then cd geo || exit 1 ./install.sh || exit 1 cd .. || exit 1 + cd cheat || exit 1 + ./install.sh || exit 1 + cd .. || exit 1 elif [[ $1 == "update" ]]; then echo "Updating scripts..." if [[ -f /usr/local/bin/currency ]];then @@ -180,6 +196,11 @@ elif [[ $1 == "update" ]]; then ./install.sh || exit 1 cd .. || exit 1 fi + if [[ -f /usr/local/bin/cheat ]];then + cd cheat || exit 1 + ./install.sh || exit 1 + cd .. || exit 1 + fi fi echo "Bash Snippets version $currentVersion" diff --git a/uninstall.sh b/uninstall.sh index 3b7d77d..6bb4a74 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -87,3 +87,13 @@ if [[ -f /usr/local/bin/geo ]];then cd .. || exit 1 fi fi + +if [[ -f /usr/local/bin/cheat ]];then + echo -n "Do you wish to uninstall cheat [Y/n]: " + read -r answer + if [[ "$answer" == "Y" || "$answer" == "y" ]] ;then + cd cheat || exit 1 + ./uninstall.sh + cd .. || exit 1 + fi +fi