Added it.sh
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
# Image Transfer: a simple script to transfer raw images to/from removable media
|
||||
# in a safer manner
|
||||
# Depends on basename, dd, fzf
|
||||
# Usage: it.sh w|r image-file
|
||||
# Created by Luxferre in 2026, released into public domain
|
||||
|
||||
get-removables() {
|
||||
for ddir in /sys/block/*; do
|
||||
if grep -q 1 ${ddir}/removable; then
|
||||
dbase="$(basename $ddir)"
|
||||
dvendor="$(cat ${ddir}/device/vendor)"
|
||||
dmodel="$(cat ${ddir}/device/model)"
|
||||
printf "%s\t%s %s" "$dbase" "$dvendor" "$dmodel"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
DEF_DD_OPTS="status=progress"
|
||||
[ -z "$DD_OPTS" ] && DD_OPTS="bs=2M"
|
||||
[ -z "$SUDO" ] && SUDO="sudo"
|
||||
if [ -z "$1" ]; then
|
||||
echo "No operation! Select w or r"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z "$2" ]; then
|
||||
echo "No target file specified!"
|
||||
exit 1
|
||||
fi
|
||||
TARGET_DRIVE="/dev/$(get-removables | fzf --prompt "Select the drive: " | cut -f 1)"
|
||||
|
||||
RUN_COMMAND=""
|
||||
if [ "$1" = "w" ]; then
|
||||
RUN_COMMAND="dd if=$2 of=$TARGET_DRIVE $DEF_DD_OPTS $DD_OPTS"
|
||||
if [ ! -w $TARGET_DRIVE ]; then
|
||||
RUN_COMMAND="$SUDO $RUN_COMMAND"
|
||||
fi
|
||||
elif [ "$1" = "r" ]; then
|
||||
RUN_COMMAND="dd of=$2 if=$TARGET_DRIVE $DEF_DD_OPTS $DD_OPTS"
|
||||
if [ ! -r $TARGET_DRIVE ]; then
|
||||
RUN_COMMAND="$SUDO $RUN_COMMAND"
|
||||
fi
|
||||
else
|
||||
echo "Invalid operation! Select w or r"
|
||||
exit 1
|
||||
fi
|
||||
echo "Starting the operation..."
|
||||
$RUN_COMMAND && echo "Operation successful!" || echo "Operation completed with errors!"
|
||||
|
||||
Reference in New Issue
Block a user