Skip to content

Instantly share code, notes, and snippets.

@iamucil
Created July 15, 2020 06:19
Show Gist options
  • Save iamucil/d8f411fe5d06dbe02f37529b885f87b8 to your computer and use it in GitHub Desktop.
Save iamucil/d8f411fe5d06dbe02f37529b885f87b8 to your computer and use it in GitHub Desktop.
#!/bin/bash
# echo "data:$(xdg-mime query filetype 02_KTP.png);base64,$(base64 -w 0 02_KTP.png)"
filename=
usage() {
echo "usage: base64encode [[-f file ] | [-h]]"
}
if [[ $# -eq 0 ]] ; then
usage
exit 0
fi
while [ "$1" != "" ]; do
case $1 in
-f | --file ) shift
filename=$1
;;
-h | --help ) usage
exit
;;
* ) usage
exit 1
esac
shift
done
function encode() {
filename=$(realpath $1)
if [ -z "${filename}" ]; then
echo "file name empty"
exit 1
fi
if [ ! -f "${filename}" ]; then
echo "The file ${filename} does not exist";
exit 1
fi
mime_type=$(file --mime-type -b $filename)
base64_encoded=$(base64 -w 0 $filename)
if [[ $(file --mime-type -b ${filename}) != image/* ]]; then
echo "file \"${filename}\" is not an image. Provide only image file."
exit 0
fi
echo "This will encode file \"$filename\" into base64 dan save into your clipboard. Just paste into somewhere "\
"to view base64 encoded"
echo "Filename: $(basename -- $filename)"
echo "Mimetype: $mime_type"
echo "================================ base64 ================================"
echo $base64_encoded
echo "================================= end =================================="
echo "data:$mime_type;base64,$base64_encoded" | xclip -selection clipboard
echo "end of encoding"
}
encode $filename
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment