This repository has been archived by the owner on Jan 23, 2022. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
447 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/bash | ||
|
||
echo "Colorful Date :)" | toilet -f mini --gay | ||
sleep 0.9 | ||
while true; do | ||
echo "$(date '+%D %T' | toilet -f term -F border --gay)" | ||
sleep 1 | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#!/bin/bash | ||
|
||
if [ $# -ne 1 ]; then | ||
echo "Usage: bash $0 /path/to/file" | ||
exit 0 | ||
fi | ||
|
||
FILE=$1 | ||
|
||
extract () { | ||
# We can simply use from dtrx tool to extract any archived file with any extension :) | ||
# Check dtrx installed or not | ||
if hash dtrx 2> /dev/null; then | ||
dtrx $1 | ||
else | ||
echo "Please install dtrx: sudo apt-get install dtrx" | ||
#exit 0 | ||
fi | ||
} | ||
|
||
extract $FILE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#!/bin/bash | ||
|
||
# Get all domains | ||
domains=$@ | ||
|
||
if [[ $# -eq 0 ]]; then | ||
echo "Usage: $0 test.com example.com ..." | ||
exit 1 | ||
fi | ||
|
||
for d in $domains | ||
do | ||
ip=$(host $d | grep 'has add' | head -1 | awk '{ print $4}') | ||
[ "$ip" == "" ] && { echo "Error: An error occurred!"; continue; } | ||
echo -e "\033[93mGetting information about domain: $d [ $ip ] \033[0m" | ||
whois "$ip" | egrep -w 'OrgName:|City:|Country:|OriginAS:|NetRange:' | ||
echo "" | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
#!/bin/bash | ||
clear | ||
|
||
echo -e """ | ||
_________ _______ _________ _______ _______ | ||
\__ __/( ____ ) \__ __/( ___ )( ____ ) | ||
) ( | ( )| ) ( | ( ) || ( )| | ||
| | | (____)| _____ | | | | | || (____)| | ||
| | | _____)(_____)| | | | | || __) | ||
| | | ( | | | | | || (\ ( | ||
___) (___| ) | | | (___) || ) \ \__ | ||
\_______/|/ )_( (_______)|/ \__/ | ||
""" | ||
|
||
echo -e "\tip-tor\033[91m :: \033[0mInstall tor and show your ip" | ||
echo -e "\tCode\033[91m :: \033[0mNaategh" | ||
echo -e "\tEmail\033[91m :: \033[0mmanamtabeshekan@gmail.com" | ||
echo "" | ||
|
||
echo -e """ | ||
\033[91m1) \033[0mOnly install tor service | ||
\033[91m2) \033[0mInstall tor browser | ||
\033[91m3) \033[0mShow my ip | ||
\033[91m4) \033[0mExit | ||
""" | ||
|
||
function main() { | ||
read -p $'\033[36m > \033[0m' choise | ||
|
||
case $choise in | ||
1 ) | ||
apt update && apt install tor | ||
echo -e "\n\033[93mTor service installed successfully...\033[0m" | ||
echo "" | ||
read -p $'\033[93mDo you want start tor now?[y/N]' answer | ||
case ${answer:0:1} in | ||
y|Y ) | ||
service tor start;; | ||
n|N ) | ||
;; | ||
esac | ||
main;; | ||
|
||
2 ) | ||
sudo add-apt-repository ppa:webupd8team/tor-browser | ||
apt update && apt install tor && apt install tor-browser | ||
echo "\n\033[93mTor browser installed successfully...\033[0m" | ||
echo "" | ||
main;; | ||
|
||
3 ) | ||
echo -e "Your ip is:\033[91m" | ||
ip= curl http://icanhazip.com | ||
echo -e "\033[0m" | ||
main;; | ||
|
||
|
||
4 ) | ||
echo -e "\t \033[91m-----------bye!-----------\033[0m" | ||
exit 0;; | ||
|
||
* ) | ||
echo -e "\033[91mWrong command!!! \033[0m" | ||
main;; | ||
esac | ||
} | ||
|
||
main |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
#!/bin/bash | ||
read -p "Text: " text | ||
echo -e "Length of $text is\033[91m ${#text} \033[0m" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#!/bin/bash | ||
echo -e "\033[91mNote:\033[0m You should first configure your mail server to use this script, \nSo if you didn't that the script will not work!\n" | ||
sleep 1 | ||
|
||
read -p "Recipient: " Recipient | ||
read -p "Subject: " Subject | ||
read -p "Message: " Message | ||
mail -s $Subject $Recipient <<< $Message | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,229 @@ | ||
#!/usr/bin/env bash | ||
# Author: Alexander Epstein https://github.com/alexanderepstein | ||
|
||
currentVersion="1.23.0" | ||
configuredClient="" | ||
configuredPython="" | ||
detail=false | ||
|
||
## 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 http &>/dev/null; then | ||
configuredClient="httpie" | ||
elif command -v fetch &>/dev/null; then | ||
configuredClient="fetch" | ||
else | ||
echo "Error: This tool requires either curl, wget, httpie or fetch to be installed." >&2 | ||
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- "$@" ;; | ||
httpie) http -b GET "$@" ;; | ||
fetch) fetch -q "$@" ;; | ||
esac | ||
} | ||
|
||
getConfiguredPython() | ||
{ | ||
if command -v python3 &>/dev/null; then | ||
configuredPython="python3" | ||
elif command -v python2 &>/dev/null; then | ||
configuredPython="python2" | ||
elif command -v python &>/dev/null; then | ||
configuredPython="python" | ||
else | ||
echo "Error: This tool requires python to be installed." | ||
return 1 | ||
fi | ||
} | ||
|
||
if [[ $(uname) != "Darwin" ]]; then | ||
python() | ||
{ | ||
case "$configuredPython" in | ||
python3) python3 "$@" ;; | ||
python2) python2 "$@" ;; | ||
python) python "$@" ;; | ||
esac | ||
} | ||
fi | ||
|
||
## Grabs an element from a a json string and then echoes it to stdout | ||
## $1 = the JSON string | ||
## $n+1 = the elements to be indexed | ||
AccessJsonElement() { | ||
json="$1" | ||
shift | ||
accessor="" | ||
for element in "$@"; do | ||
accessor="${accessor}['$element']" | ||
done | ||
echo "$json" | python -c "from __future__ import print_function; import sys, json; print(json.load(sys.stdin)${accessor})" 2> /dev/null | ||
return "$?" | ||
} | ||
|
||
checkInternet() | ||
{ | ||
httpGet github.com > /dev/null 2>&1 || { echo "Error: no active internet connection" >&2; return 1; } # query github with a get request | ||
} | ||
|
||
## This function grabs information about a movie and using python parses the | ||
## JSON response to extrapolate the information for storage | ||
getMovieInfo() | ||
{ | ||
apiKey=946f500a # try not to abuse this it is a key that came from the ruby-scripts repo I link to. | ||
movie=$( (echo "$@" | tr " " + ) | sed 's/-d+//g' ) ## format the inputs to use for the api. Added sed command to filter -d flag. | ||
export PYTHONIOENCODING=utf8 #necessary for python in some cases | ||
movieInfo=$(httpGet "http://www.omdbapi.com/?t=$movie&apikey=$apiKey") > /dev/null # query the server and get the JSON response | ||
checkResponse=$(echo $movieInfo | python -c "import sys, json; print json.load(sys.stdin)['Response']" 2> /dev/null) | ||
if [[ $checkResponse == "False" ]]; then { echo "No movie found" ; return 1 ;} fi ## check to see if the movie was found | ||
# The rest of the code is just extrapolating the data with python from the JSON response | ||
title="$(AccessJsonElement "$movieInfo" "Title")" | ||
year="$(AccessJsonElement "$movieInfo" "Year")" | ||
runtime="$(AccessJsonElement "$movieInfo" "Runtime")" | ||
imdbScore=$(echo $movieInfo | python -c "from __future__ import print_function; import sys, json; print(json.load(sys.stdin)['Ratings'][0]['Value'])" 2> /dev/null) | ||
tomatoScore=$(echo $movieInfo | python -c "from __future__ import print_function; import sys, json; print(json.load(sys.stdin)['Ratings'][1]['Value'])" 2> /dev/null) | ||
rated="$(AccessJsonElement "$movieInfo" "Rated")" | ||
genre="$(AccessJsonElement "$movieInfo" "Genre")" | ||
director="$(AccessJsonElement "$movieInfo" "Director")" | ||
actors="$(AccessJsonElement "$movieInfo" "Actors")" | ||
plot="$(AccessJsonElement "$movieInfo" "Plot")" | ||
|
||
if $detail; then | ||
awards="$(AccessJsonElement "$movieInfo" "Awards")" | ||
boxOffice="$(AccessJsonElement "$movieInfo" "BoxOffice")" | ||
metacriticScore=$(echo $movieInfo | python -c "from __future__ import print_function; import sys, json; print(json.load(sys.stdin)['Ratings'][2]['Value'])" 2> /dev/null) | ||
production="$(AccessJsonElement "$movieInfo" "Production")" | ||
fi | ||
} | ||
|
||
# Prints the movie information out in a human readable format | ||
printMovieInfo() | ||
{ | ||
echo | ||
echo '==================================================' | ||
echo "| Title: $title" | ||
echo "| Year: $year" | ||
echo "| Runtime: $runtime" | ||
if [[ $imdbScore != "" ]]; then echo "| IMDB: $imdbScore"; fi | ||
if [[ $tomatoScore != "" ]]; then echo "| Tomato: $tomatoScore"; fi | ||
if $detail; then | ||
if [[ $metacriticScore != "" ]]; then echo "| Metascore: $metacriticScore"; fi | ||
fi | ||
if [[ $rated != "N/A" && $rated != "" ]]; then echo "| Rated: $rated"; fi | ||
echo "| Genre: $genre" | ||
echo "| Director: $director" | ||
echo "| Actors: $actors" | ||
if [[ $plot != "N/A" && $plot != "" ]]; then echo "| Plot: $plot"; fi | ||
if $detail; then | ||
if [[ $boxOffice != "" ]]; then echo "| Box Office: $boxOffice"; fi | ||
if [[ $production != "" ]]; then echo "| Production: $production"; fi | ||
if [[ $awards != "" ]]; then echo "| Awards: $awards"; fi | ||
fi | ||
echo '==================================================' | ||
echo | ||
} | ||
|
||
update() | ||
{ | ||
# Author: Alexander Epstein https://github.com/alexanderepstein | ||
# Update utility version 2.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" == [Yy] ]]; 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 | ||
echo -n "Downloading latest version of: $repositoryName." | ||
git clone -q "https://github.com/$githubUserName/$repositoryName" && touch .BSnippetsHiddenFile || { echo "Failure!"; exit 1; } & | ||
while [ ! -f .BSnippetsHiddenFile ]; do { echo -n "."; sleep 2; };done | ||
rm -f .BSnippetsHiddenFile | ||
echo "Success!" | ||
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() | ||
{ | ||
cat <<EOF | ||
Movies | ||
Description: Provides relevant information about a certain movie. | ||
Usage: movies [flag] or movies [movieToSearch] | ||
-u Update Bash-Snippet Tools | ||
-h Show the help | ||
-v Get the tool version | ||
-d Show detailed information | ||
Examples: | ||
movies Argo | ||
movies Inception | ||
EOF | ||
} | ||
|
||
if [[ $(uname) != "Darwin" ]]; then getConfiguredPython || exit 1; fi | ||
getConfiguredClient || exit 1 | ||
|
||
|
||
while getopts 'ud:hv' flag; do | ||
case "${flag}" in | ||
u) checkInternet || exit 1 # check if we have a valid internet connection if this isnt true the rest of the script will not work so stop here | ||
update | ||
exit 0 ;; | ||
d) detail=true ;; | ||
h) usage | ||
exit 0 ;; | ||
v) echo "Version $currentVersion" | ||
exit 0 ;; | ||
:) echo "Option -$OPTARG requires an argument." >&2 | ||
exit 1 ;; | ||
*) exit 1 ;; | ||
esac | ||
done | ||
|
||
if [[ $# == 0 ]]; then | ||
usage | ||
elif [[ $1 == "update" ]]; then | ||
checkInternet || exit 1 # check if we have a valid internet connection if this isnt true the rest of the script will not work so stop here | ||
update | ||
elif [[ $1 == "help" ]]; then | ||
usage | ||
else | ||
checkInternet || exit 1 # check if we have a valid internet connection if this isnt true the rest of the script will not work so stop here | ||
getMovieInfo "$@" || exit 1 ## exit if we return 1 (chances are movie was not found) | ||
printMovieInfo ## print out the data | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#!/bin/bash | ||
|
||
read -p "Domain name: " DOMAIN | ||
read -p "Where to save final report? " SAVE | ||
read -p "Path to web server log file: " LOGFILE | ||
|
||
[ ! -d $SAVE ] && mkdir -p $SAVE | ||
|
||
if [[ -f $LOGFILE ]]; then | ||
echo "Processing log for $DOMAIN ..." | ||
touch $SAVE/$DOMAIN.txt | ||
awk '{ print $1}' $LOGFILE | sort | uniq -c | sort -nr > $SAVE/$DOMAIN.txt | ||
echo "Report written to $SAVE/$DOMAIN.txt" | ||
fi |
Oops, something went wrong.