domingo, 26 de maio de 2019

Monitorar diretório e converter arquivos automaticamente

Costumo elaborar minhas postagens em markdown e em seguida convertê-las para html.

Para automatizar o processo necessitamos de três ferramentas:

- pandoc

- notify-send

- inotify-tools

Com os pacotes instalados, utilizaremos o seguinte script para Bash:

#!/usr/bin/env bash

WORKDIR=${HOME}/Publicacoes

inotifywait -q -m -e create $WORKDIR | \
    while read i; do
        FILE=$(echo $i | grep .md  | sed 's/^.*CREATE //g')
        cd $WORKDIR

        if pandoc "$FILE" -o "$(echo $FILE | sed 's/\.md/.html/g')" 2> /dev/null ; then
            notify-send -u low "$(printf "Arquivo $FILE convertido para html")"
        fi
    done

Entendendo o comando inotifywait:

-q

Menos verbosidade (menos informações na saída padrão)

-m

Modo monitoramento habilitado (não sai do inotifywait na primeira ocorrência)

-e create:

Monitora os eventos CREATE (criação de arquivos) dentro do diretório informado

Como utilizar o script?

1. Crie um diretório (Ex. Publicacoes) dentro da pasta pessoal de seu usuário:

mkdir $HOME/Publicacoes

2. Salve o script com permissões de execução e configure seu ambiente desktop para iniciá-lo automaticamente

No KDE, basta colocar o script dentro do diretório $HOME/.config/autostart-scripts/.

3. Reinicie a sessão de seu usuário (logoff, login)

Pronto.

Basta copiar os arquivos com a extensão .md para o diretório e os mesmos serão convertidos para .html.

Com o notify-send você receberá notificações no seu ambiente desktop após cada conversão.

Share:

0 comments:

Postar um comentário