first update
This commit is contained in:
commit
b87984ccce
0
.gitignore
vendored
Normal file
0
.gitignore
vendored
Normal file
10
README.md
Normal file
10
README.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# My Shell Utilities
|
||||||
|
|
||||||
|
Various shell scripts that do various things.
|
||||||
|
|
||||||
|
## Categories
|
||||||
|
|
||||||
|
- sys: all the shell scripts related to system monitoring and manipulation
|
||||||
|
- app: convenience scripts that make it easier to use applications
|
||||||
|
- scripting: tools to improve scripting or serve as a reference
|
||||||
|
|
13
app/apps
Executable file
13
app/apps
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
_stopnow() {
|
||||||
|
test -f stopnow && echo "Stopping!" && rm stopnow && exit 0 || return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
_stopnow
|
||||||
|
menu
|
||||||
|
done
|
||||||
|
|
12
app/contacts
Executable file
12
app/contacts
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
addressbook="/home/gmgauthier/.local/share/addrbook/contacts.txt"
|
||||||
|
|
||||||
|
## Simple record retrieval by any known value
|
||||||
|
#awk 'BEGIN { RS = "<->" } /'$*'/' $addressbook
|
||||||
|
|
||||||
|
## Get record by search for substring in email
|
||||||
|
#awk 'BEGIN { RS = "<->"; FS = "email: " } ($2 ~ "'${*}'") { print $0 }' $addressbook
|
||||||
|
|
||||||
|
## Get email addresses in a specific contact class
|
||||||
|
awk 'BEGIN { RS = "<->"; FS = "category: " } ($2 ~ "'${1}'") { print }' $addressbook | grep '^email:' | egrep -o '[^ ]+$'
|
18
app/def
Executable file
18
app/def
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
dict -h localhost -d gcide "$@" > /home/gmgauthier/.local/tmp/"${1}".txt 2>&1
|
||||||
|
|
||||||
|
content=$(cat /home/gmgauthier/.local/tmp/"${1}".txt);
|
||||||
|
|
||||||
|
if [[ "${content}" == *"No definitions found"* ]]; then
|
||||||
|
icon="/home/gmgauthier/.local/bin/img/caution-48.png"
|
||||||
|
else
|
||||||
|
icon="/home/gmgauthier/.local/bin/img/checkmark-32.png"
|
||||||
|
fi
|
||||||
|
|
||||||
|
zenity --text-info \
|
||||||
|
--window-icon="${icon}" \
|
||||||
|
--filename=/home/gmgauthier/.local/tmp/"${1}".txt \
|
||||||
|
--font="IBM Plex Mono Medium 11" \
|
||||||
|
--width=750 \
|
||||||
|
--height=600 2> /dev/null
|
8
app/forecast
Executable file
8
app/forecast
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
if ! [[ -n $1 ]]; then
|
||||||
|
loc="Cowley,UK"
|
||||||
|
else
|
||||||
|
loc=$1
|
||||||
|
fi
|
||||||
|
|
||||||
|
curl wttr.in/$loc?u
|
112
app/menu
Executable file
112
app/menu
Executable file
@ -0,0 +1,112 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# while-menu-dialog: a menu driven system information program
|
||||||
|
export ME="/home/gmgauthier"
|
||||||
|
|
||||||
|
DIALOG_CANCEL=1
|
||||||
|
DIALOG_ESC=255
|
||||||
|
HEIGHT=17
|
||||||
|
WIDTH=0
|
||||||
|
|
||||||
|
tmemo() {
|
||||||
|
tmp=$(date +"memo-%Y.%m.%d-%k.%M.%S")
|
||||||
|
timestamp="${tmp// /}"
|
||||||
|
filename="$HOME/memos/${timestamp}.md"
|
||||||
|
exec tilde $filename
|
||||||
|
}
|
||||||
|
|
||||||
|
output_panel() {
|
||||||
|
dialog --title "$1" \
|
||||||
|
--no-collapse \
|
||||||
|
--msgbox "$result" 0 0
|
||||||
|
}
|
||||||
|
|
||||||
|
_stopnow() {
|
||||||
|
test -f stopnow && echo "Stopping!" && rm stopnow && exit 0 || return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
menu() {
|
||||||
|
exec 3>&1
|
||||||
|
selection=$(dialog \
|
||||||
|
--backtitle "TUI Command Center" \
|
||||||
|
--title "Menu" \
|
||||||
|
--clear \
|
||||||
|
--cancel-label "Exit" \
|
||||||
|
--menu "Please select:" $HEIGHT $WIDTH 4 \
|
||||||
|
"1" "Mutt Email" \
|
||||||
|
"2" "Calcurse Calendar" \
|
||||||
|
"3" "Abook Contacts" \
|
||||||
|
"4" "Tudu Tasks" \
|
||||||
|
"5" "Tilde Notepad" \
|
||||||
|
"6" "CLI Calculator" \
|
||||||
|
"7" "MC File Manager" \
|
||||||
|
"8" "IRC Client" \
|
||||||
|
"9" "Castero Podcasts" \
|
||||||
|
"0" "VLC Music Player" \
|
||||||
|
2>&1 1>&3)
|
||||||
|
exit_status=$?
|
||||||
|
exec 3>&-
|
||||||
|
|
||||||
|
case $exit_status in
|
||||||
|
$DIALOG_CANCEL)
|
||||||
|
clear
|
||||||
|
echo "Exiting Apps Menu."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
$DIALOG_ESC)
|
||||||
|
clear
|
||||||
|
echo "Terminating Apps Menu." >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
clear
|
||||||
|
|
||||||
|
case $selection in
|
||||||
|
1 )
|
||||||
|
clear
|
||||||
|
exec neomutt -F ${ME}/.config/mutt/.protonmuttrc
|
||||||
|
;;
|
||||||
|
2 )
|
||||||
|
clear
|
||||||
|
exec calcurse -c ${ME}/.local/share/calcurse/calendar -C ${ME}/.config/calcurse
|
||||||
|
;;
|
||||||
|
3 )
|
||||||
|
clear
|
||||||
|
exec abook --datafile ${ME}/.local/share/abook/addressbook
|
||||||
|
;;
|
||||||
|
4 )
|
||||||
|
clear
|
||||||
|
exec tudu -f ${ME}/.local/share/tudu/tasks.xml -c ${ME}/.config/tudu/config
|
||||||
|
;;
|
||||||
|
5 )
|
||||||
|
clear
|
||||||
|
tmemo
|
||||||
|
;;
|
||||||
|
6 )
|
||||||
|
clear
|
||||||
|
exec calc
|
||||||
|
;;
|
||||||
|
7 )
|
||||||
|
clear
|
||||||
|
exec mc
|
||||||
|
;;
|
||||||
|
8 )
|
||||||
|
clear
|
||||||
|
exec weechat
|
||||||
|
;;
|
||||||
|
9 )
|
||||||
|
clear
|
||||||
|
exec castero
|
||||||
|
;;
|
||||||
|
0 )
|
||||||
|
clear
|
||||||
|
exec vlc -Z -L -I ncurses --no-video --recursive expand ${ME}/Music
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
_stopnow
|
||||||
|
menu
|
||||||
|
done
|
43
app/spchk
Executable file
43
app/spchk
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
function parseResults() {
|
||||||
|
oIFS=$IFS
|
||||||
|
IFS=":"
|
||||||
|
declare -a fields=($1)
|
||||||
|
|
||||||
|
export QUERYTERM=$(echo "${fields[0]}"|awk '{print $1}');
|
||||||
|
export LISTCOUNT=$(echo "${fields[0]}"|awk '{print $2}');
|
||||||
|
export WORDLIST=$(echo "${fields[1]}"|sed 's/^\s*\|\s*$//g');
|
||||||
|
|
||||||
|
IFS=$oIFS
|
||||||
|
unset oIFS
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
>&2 echo "No arguments provided"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" =~ ^[0-9]+$ ]]; then
|
||||||
|
zenity --info --text="<b>ERROR</b> only words, please!"\
|
||||||
|
--icon-name=error \
|
||||||
|
--window-icon="/home/gmgauthier/.local/bin/img/xmark.png" 2> /dev/null
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
export RESULT=$(echo "$@"|aspell -a|sed "1 d"); # Deletes the header line
|
||||||
|
export FIXED="${RESULT/& }" # Removes ampersand causing parsing errors.
|
||||||
|
|
||||||
|
if [[ "${FIXED}" == *"*"* ]]; then
|
||||||
|
zenity --info --text="<b>CORRECT!</b> " \
|
||||||
|
--icon-name=info \
|
||||||
|
--window-icon="/home/gmgauthier/.local/bin/img/check-mark-11-16.png" 2> /dev/null
|
||||||
|
|
||||||
|
else
|
||||||
|
parseResults "${FIXED}"
|
||||||
|
message="<b>There are ${LISTCOUNT} suggested corrections for '${QUERYTERM}':</b> ${WORDLIST}"
|
||||||
|
zenity --info --text="${message}"\
|
||||||
|
--icon-name=warning \
|
||||||
|
--window-icon="/home/gmgauthier/.local/bin/img/caution-48.png" 2> /dev/null
|
||||||
|
|
||||||
|
fi
|
8
app/wx
Executable file
8
app/wx
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
if ! [[ -n $1 ]]; then
|
||||||
|
loc="Cowley,UK"
|
||||||
|
else
|
||||||
|
loc=$1
|
||||||
|
fi
|
||||||
|
|
||||||
|
ansiweather -l $loc -u imperial -s true -i false
|
39
app/yootoob
Executable file
39
app/yootoob
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
$cecho = '/gmgauthier/.local/bin/cecho';
|
||||||
|
|
||||||
|
function border () {
|
||||||
|
local str="$*" # Put all arguments into single string
|
||||||
|
local len=${#str}
|
||||||
|
local i
|
||||||
|
for ((i = 0; i < len + 4; ++i)); do
|
||||||
|
printf '-'
|
||||||
|
done
|
||||||
|
printf '\n| %s |\n' "$str"
|
||||||
|
for ((i = 0; i < len + 4; ++i)); do
|
||||||
|
printf '-'
|
||||||
|
done
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
clear
|
||||||
|
border "Internet Video Console"
|
||||||
|
echo
|
||||||
|
read -p "Search For: " searchphrase
|
||||||
|
|
||||||
|
ytfzf --detach --notify-playing --ytdl-pref="[height <=? 720]" --sort-by="upload_date" --pages=3 "${searchphrase}"
|
||||||
|
|
||||||
|
if [[ $? -ne 0 ]]; then
|
||||||
|
/home/gmgauthier/.local/bin/cecho "IYellow" "There are no results for '${searchphrase}'";
|
||||||
|
read -p "Press any key to exit... " -n1 -s
|
||||||
|
else
|
||||||
|
# needed because immediate exit was destroying the handshake between alacritty and ytfzf
|
||||||
|
/home/gmgauthier/.local/bin/cecho "Green" "Your video will play momentarily..."
|
||||||
|
sleep 4
|
||||||
|
#This only works if the query window is the only open terminal
|
||||||
|
#xdotool search --onlyvisible --classname alacritty windowminimize
|
||||||
|
#sleep 5
|
||||||
|
#this only works if mpv doesn't become the active window
|
||||||
|
#xdotool windowminimize getactivewindow
|
||||||
|
fi
|
||||||
|
exit 0
|
89
scripting/cecho
Executable file
89
scripting/cecho
Executable file
@ -0,0 +1,89 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
function cecho(){
|
||||||
|
# Reset
|
||||||
|
Color_Off='\033[0m' # Text Reset
|
||||||
|
|
||||||
|
# Regular Colors
|
||||||
|
Black='\033[0;30m' # Black
|
||||||
|
Red='\033[0;31m' # Red
|
||||||
|
Green='\033[0;32m' # Green
|
||||||
|
Yellow='\033[0;33m' # Yellow
|
||||||
|
Blue='\033[0;34m' # Blue
|
||||||
|
Purple='\033[0;35m' # Purple
|
||||||
|
Cyan='\033[0;36m' # Cyan
|
||||||
|
White='\033[0;37m' # White
|
||||||
|
|
||||||
|
# Bold
|
||||||
|
BBlack='\033[1;30m' # Black
|
||||||
|
BRed='\033[1;31m' # Red
|
||||||
|
BGreen='\033[1;32m' # Green
|
||||||
|
BYellow='\033[1;33m' # Yellow
|
||||||
|
BBlue='\033[1;34m' # Blue
|
||||||
|
BPurple='\033[1;35m' # Purple
|
||||||
|
BCyan='\033[1;36m' # Cyan
|
||||||
|
BWhite='\033[1;37m' # White
|
||||||
|
|
||||||
|
# Underline
|
||||||
|
UBlack='\033[4;30m' # Black
|
||||||
|
URed='\033[4;31m' # Red
|
||||||
|
UGreen='\033[4;32m' # Green
|
||||||
|
UYellow='\033[4;33m' # Yellow
|
||||||
|
UBlue='\033[4;34m' # Blue
|
||||||
|
UPurple='\033[4;35m' # Purple
|
||||||
|
UCyan='\033[4;36m' # Cyan
|
||||||
|
UWhite='\033[4;37m' # White
|
||||||
|
|
||||||
|
# Background
|
||||||
|
On_Black='\033[40m' # Black
|
||||||
|
On_Red='\033[41m' # Red
|
||||||
|
On_Green='\033[42m' # Green
|
||||||
|
On_Yellow='\033[43m' # Yellow
|
||||||
|
On_Blue='\033[44m' # Blue
|
||||||
|
On_Purple='\033[45m' # Purple
|
||||||
|
On_Cyan='\033[46m' # Cyan
|
||||||
|
On_White='\033[47m' # White
|
||||||
|
|
||||||
|
# High Intensity
|
||||||
|
IBlack='\033[0;90m' # Black
|
||||||
|
IRed='\033[0;91m' # Red
|
||||||
|
IGreen='\033[0;92m' # Green
|
||||||
|
IYellow='\033[0;93m' # Yellow
|
||||||
|
IBlue='\033[0;94m' # Blue
|
||||||
|
IPurple='\033[0;95m' # Purple
|
||||||
|
ICyan='\033[0;96m' # Cyan
|
||||||
|
IWhite='\033[0;97m' # White
|
||||||
|
|
||||||
|
# Bold High Intensity
|
||||||
|
BIBlack='\033[1;90m' # Black
|
||||||
|
BIRed='\033[1;91m' # Red
|
||||||
|
BIGreen='\033[1;92m' # Green
|
||||||
|
BIYellow='\033[1;93m' # Yellow
|
||||||
|
BIBlue='\033[1;94m' # Blue
|
||||||
|
BIPurple='\033[1;95m' # Purple
|
||||||
|
BICyan='\033[1;96m' # Cyan
|
||||||
|
BIWhite='\033[1;97m' # White
|
||||||
|
|
||||||
|
# High Intensity backgrounds
|
||||||
|
On_IBlack='\033[0;100m' # Black
|
||||||
|
On_IRed='\033[0;101m' # Red
|
||||||
|
On_IGreen='\033[0;102m' # Green
|
||||||
|
On_IYellow='\033[0;103m' # Yellow
|
||||||
|
On_IBlue='\033[0;104m' # Blue
|
||||||
|
On_IPurple='\033[0;105m' # Purple
|
||||||
|
On_ICyan='\033[0;106m' # Cyan
|
||||||
|
On_IWhite='\033[0;107m' # White
|
||||||
|
|
||||||
|
RED="\033[0;31m"
|
||||||
|
GREEN="\033[0;32m" # <-- [0 means not bold
|
||||||
|
YELLOW="\033[1;33m" # <-- [1 means bold
|
||||||
|
CYAN="\033[1;36m"
|
||||||
|
# ... Add more colors if you like
|
||||||
|
|
||||||
|
NC="\033[0m" # No Color
|
||||||
|
|
||||||
|
# printf "${(P)1}${2} ${NC}\n" # <-- zsh
|
||||||
|
printf "${!1}${2} ${NC}\n" # <-- bash
|
||||||
|
}
|
||||||
|
|
||||||
|
cecho "$@"
|
4
scripting/mvsprt
Executable file
4
scripting/mvsprt
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
#lpr -p -o media=11x17 -o orientation-requested=5 "$@"
|
||||||
|
lpr -p -o media=17x11 "$@"
|
BIN
scripting/passwdgen
Executable file
BIN
scripting/passwdgen
Executable file
Binary file not shown.
5
sys/birthdate
Executable file
5
sys/birthdate
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
statout=$(stat -c %W --terse /)
|
||||||
|
birthdate=$(date --date="@$statout")
|
||||||
|
echo $birthdate
|
3
sys/checkit
Executable file
3
sys/checkit
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
vale --config=/home/gmgauthier/.config/vale/.vale.ini --no-wrap "$@"
|
3
sys/dirsz
Executable file
3
sys/dirsz
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
du -mhac "$@" --exclude .git|sort -h
|
10
sys/ifcheck
Executable file
10
sys/ifcheck
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
iface=$(ip -br -4 -iec -o -c address show dev wlp0s20f3)
|
||||||
|
if=$(echo $iface|awk '{print $1}')
|
||||||
|
ifstatus=$(echo $iface|awk '{print $2}')
|
||||||
|
ifaddr=$(echo $iface|awk '{print $3}')
|
||||||
|
|
||||||
|
echo $if $ifstatus $ifaddr
|
||||||
|
|
||||||
|
exit
|
11
sys/netcheck
Executable file
11
sys/netcheck
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
nchk=$(/home/gmgauthier/.local/bin/ifcheck)
|
||||||
|
|
||||||
|
|
||||||
|
ping -q -n -c1 "1.1.1.1" &>"/dev/null"
|
||||||
|
if [[ "${?}" -ne 0 ]]; then
|
||||||
|
/home/gmgauthier/.local/bin/cecho "BRed" "UNAVAILABLE"
|
||||||
|
elif [[ "${#args[@]}" -eq 0 ]]; then
|
||||||
|
/home/gmgauthier/.local/bin/cecho "IGreen" "AVAILABLE"
|
||||||
|
fi
|
28
sys/status
Executable file
28
sys/status
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
numlines=$(tput lines)
|
||||||
|
numcols=$(tput cols)
|
||||||
|
numcols=$(expr $numcols - 1)
|
||||||
|
separator_line=$(for i in $(seq 0 $numcols);do printf "%s"═"";done;printf "\n")
|
||||||
|
/usr/bin/clear
|
||||||
|
tput cup 0
|
||||||
|
|
||||||
|
status=$(/home/gmgauthier/.local/bin/ifcheck)
|
||||||
|
if=$(echo $status|awk '{print $1}')
|
||||||
|
ifstatus=$(echo $status|awk '{print $2}')
|
||||||
|
ifaddr=$(echo $status|awk '{print $3}')
|
||||||
|
|
||||||
|
if [[ "${status}" == *"UP"* ]]; then
|
||||||
|
echo -e " $(/home/gmgauthier/.local/bin/wx)"
|
||||||
|
echo -e "$(/home/gmgauthier/.local/bin/cecho ICyan Wifi:) ${ifstatus}\t\t $(/home/gmgauthier/.local/bin/cecho ICyan Inet:) $(/home/gmgauthier/.local/bin/netcheck)\t\t\t\t\t $(date +%R)"
|
||||||
|
else
|
||||||
|
iface=$(ip -br -o -c address show dev wlp0s20f3)
|
||||||
|
ifstatus=$(echo $iface|awk '{print $2}')
|
||||||
|
ifaddr=$(echo $iface|awk '{print $3}')
|
||||||
|
echo -e "$(/home/gmgauthier/.local/bin/cecho ICyan Wifi:) ${ifstatus} ${ifaddr} $(/home/gmgauthier/.local/bin/cecho ICyan Inet:) $(/home/gmgauthier/.local/bin/netcheck) $(date +%R)"
|
||||||
|
fi
|
||||||
|
echo $separator_line
|
||||||
|
mpstat
|
||||||
|
echo $separator_line
|
||||||
|
dfrs
|
||||||
|
echo $separator_line
|
||||||
|
acpi
|
54
sys/usedisk
Executable file
54
sys/usedisk
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
#/usr/bin/env bash
|
||||||
|
|
||||||
|
MEDIADIR="/media/gmgauthier"
|
||||||
|
format=0 # Don't format disk images that already exist
|
||||||
|
|
||||||
|
# get name of freshly created blank disk, or create one
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo ">>> NEW DISK IS BEING CREATED..."
|
||||||
|
PREFIX="floppy"
|
||||||
|
RANDO=$(od -An -N4 -i < /dev/urandom|sed 's/[ -]//g')
|
||||||
|
DISK="$PREFIX$RANDO"
|
||||||
|
dd if=/dev/zero of=$DISK.img bs=1k count=1440
|
||||||
|
format=1
|
||||||
|
else
|
||||||
|
DISK=$1
|
||||||
|
if ! [ -f $DISK.img ]; then
|
||||||
|
dd if=/dev/zero of=$DISK.img bs=1k count=1440
|
||||||
|
format=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Find the next available loop device on the system
|
||||||
|
echo ">>> LOOP DEVICE IS BEING IDENTIFIED..."
|
||||||
|
list=$(losetup -O name|sed 's/\/dev\/loop//g'|sed 's/NAME//g'|sort - --sort=human-numeric)
|
||||||
|
### listarr=(${(@s: :)list}) # zsh version of the array generator
|
||||||
|
listarr=($(echo $list | tr " " "\n")) #bash version of array generator
|
||||||
|
lastdev=${listarr[-1]}
|
||||||
|
lastdevnum=$((lastdev))
|
||||||
|
nextdev=$((lastdevnum+1))
|
||||||
|
|
||||||
|
# allocate the next available loop device, format the disk, and mount it.
|
||||||
|
nextdevname="/dev/loop$nextdev"
|
||||||
|
echo ">>> LOOP DEVICE $nextdevname RESERVED FOR DISK: $DISK.img"
|
||||||
|
|
||||||
|
sudo losetup $nextdevname $DISK.img
|
||||||
|
|
||||||
|
if [ $format -eq 1 ]; then
|
||||||
|
echo ">>> DISK IMAGE IS RAW AND WILL BE FORMATTED"
|
||||||
|
sudo mkfs -t vfat $nextdevname
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ -d $MEDIADIR/$DISK ]; then
|
||||||
|
echo ">>> MOUNT DIRECTORY NOT FOUND. CREATING DIRECTORY NOW."
|
||||||
|
sudo mkdir $MEDIADIR/$DISK
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ">>> DISK $DISK.img MOUNTING AT LOCATION: $MEDIADIR/$DISK"
|
||||||
|
sudo mount $DISK.img $MEDIADIR/$DISK
|
||||||
|
|
||||||
|
if [ $format -eq 1 ]; then
|
||||||
|
echo ">>> DISK INFORMATION BEING COPIED TO $DISK.img"
|
||||||
|
sudo fdisk -l $nextdevname >> $DISK-fdisk.txt
|
||||||
|
sudo cp $DISK-fdisk.txt $MEDIADIR/$DISK/$DISK.txt && rm $DISK-fdisk.txt
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user