at master 2.7 kB view raw
1#!/usr/bin/env sh 2# adapted from https://github.com/adaerr/reMarkableScripts/blob/master/pdf2remarkable.sh 3 4XOCHITL_DIR=${XOCHITL_DIR:-.local/share/remarkable/xochitl/} 5 6if [ $# -lt 1 ]; then 7 echo "usage: $(basename $0) [ -r ] path-to-file [path-to-file]..." 8 exit 1 9fi 10 11RESTART_XOCHITL_DEFAULT=${RESTART_XOCHITL_DEFAULT:-0} 12RESTART_XOCHITL=${RESTART_XOCHITL_DEFAULT} 13if [ "$1" = "-r" ] ; then 14 shift 15 if [ $RESTART_XOCHITL_DEFAULT -eq 0 ] ; then 16 echo Switching 17 RESTART_XOCHITL=1 18 else 19 RESTART_XOCHITL=0 20 fi 21fi 22 23# Create directory where we prepare the files as the reMarkable expects them 24tmpdir=$(mktemp -d) 25 26# Loop over the command line arguments, 27# which we expect are paths to the files to be transferred 28for filename in "$@" ; do 29 30 # reMarkable documents appear to be identified by universally unique IDs (UUID), 31 # so we generate one for the document at hand 32 uuid=$(uuidgen | tr '[:upper:]' '[:lower:]') 33 34 extension="${filename##*.}" 35 36 # Copy the file itself 37 cp -- "$filename" "${tmpdir}/${uuid}.${extension}" 38 39 # Add metadata 40 # The lastModified item appears to contain the date in milliseconds since Epoch 41 cat <<EOF >>${tmpdir}/${uuid}.metadata 42{ 43 "deleted": false, 44 "lastModified": "$(date +%s)000", 45 "metadatamodified": false, 46 "modified": false, 47 "parent": "", 48 "pinned": false, 49 "synced": false, 50 "type": "DocumentType", 51 "version": 1, 52 "visibleName": "$(basename -- "$filename" ".$extension")" 53} 54EOF 55 56 if [ "$extension" = "pdf" ]; then 57 # Add content information 58 cat <<EOF >${tmpdir}/${uuid}.content 59{ 60 "extraMetadata": { 61 }, 62 "fileType": "pdf", 63 "fontName": "", 64 "lastOpenedPage": 0, 65 "lineHeight": -1, 66 "margins": 100, 67 "pageCount": 1, 68 "textScale": 1, 69 "transform": { 70 "m11": 1, 71 "m12": 1, 72 "m13": 1, 73 "m21": 1, 74 "m22": 1, 75 "m23": 1, 76 "m31": 1, 77 "m32": 1, 78 "m33": 1 79 } 80} 81EOF 82 83 # Add cache directory 84 mkdir ${tmpdir}/${uuid}.cache 85 86 # Add highlights directory 87 mkdir ${tmpdir}/${uuid}.highlights 88 89 # Add thumbnails directory 90 mkdir ${tmpdir}/${uuid}.thumbnails 91 92 elif [ "$extension" = "epub" ]; then 93 94 # Add content information 95 cat <<EOF >${tmpdir}/${uuid}.content 96{ 97 "fileType": "epub" 98} 99EOF 100 101 else 102 echo "Unknown extension: $extension, skipping $filename" 103 rm -rf ${tmpdir}/* 104 continue 105 fi 106 107 # Transfer files 108 echo "Transferring $filename as $uuid" 109 scp -r ${tmpdir}/* "${XOCHITL_DIR}" 110 rm -rf ${tmpdir}/* 111done 112 113rm -rf ${tmpdir} 114 115if [ $RESTART_XOCHITL -eq 1 ] ; then 116 echo "Restarting Xochitl..." 117 systemctl restart xochitl 118 echo "Done." 119fi