dotfiles

Repositório dotfiles
git clone git://git.sivaldodavi.com/dotfiles.git
Log | Files | Refs | README

epub (1181B)


      1 #!/bin/sh
      2 
      3 [ -z "$1" ] && { printf "Uso: %s <arquivo.epub>\n" "$(basename "$0")"; exit 1; }
      4 
      5 FILE="$(realpath "$1")"
      6 [ -f "$FILE" ] || { printf "Erro: arquivo não encontrado: %s\n" "$FILE"; exit 1; }
      7 
      8 DEST_DIR="$(dirname "$FILE")"
      9 BASE="$(basename "$FILE" .epub)"
     10 FINAL_NAME="${DEST_DIR}/${BASE}_editado.epub"
     11 TEMP_DIR="/tmp/epub_${$}_$(date +%s)"
     12 
     13 # Extração
     14 mkdir -p "$TEMP_DIR"
     15 unzip -q "$FILE" -d "$TEMP_DIR"
     16 
     17 # Verifica se NERDTree está disponível
     18 _has_nerdtree() {
     19     vim -e -s \
     20         -c 'silent! runtime plugin/NERD_tree.vim' \
     21         -c 'if !exists("g:loaded_nerd_tree") | cq | endif' \
     22         -c 'q' >/dev/null 2>&1
     23 }
     24 
     25 if _has_nerdtree; then
     26     (cd "$TEMP_DIR" && vim -c "NERDTree $TEMP_DIR" -c "wincmd l")
     27 else
     28     # netrw é built-in — funciona sem plugins
     29     (cd "$TEMP_DIR" && "${EDITOR:-vim}" .)
     30 fi
     31 
     32 # Recompactação seguindo o padrão OCF:
     33 # mimetype deve ser o primeiro arquivo e sem compressão (-0)
     34 printf '-> Gerando EPUB: %s\n' "$FINAL_NAME"
     35 (
     36     cd "$TEMP_DIR" || exit 1
     37     zip -q -X -0  "$FINAL_NAME" mimetype
     38     zip -q -X -9 -r -g "$FINAL_NAME" . -x "mimetype" -x "*.DS_Store"
     39 )
     40 
     41 rm -rf "$TEMP_DIR"
     42 printf 'Concluído: %s\n' "$FINAL_NAME"