Таки одного моего скриптика не хватило для полного счатья. В пеликане есть одна команда, через которую я создавал блог:
1 |
pelican-quickstart |
На выходе – конфиг файл, базовая структура папок (очень сильно базовая) и мейкфайл с несколькими тасками. Три основных таска, которые мне были нужны:
clean
– чистит аутпутhtml
– генерирует аутпутftp_upload
– синхронизация на фтп
Первые две команды работают прекрасно сразу после генерации мейкфайла, а вот последняя – фигушки. Весь квест заключался в том, чтобы правильно написать команды для lftp
. Не буду сильно вдаваться в подробности, скажу лишь о результатах:
- Ошибка с невалидным сертификатом моего ФТП лечится командой
set ssl:verify-certificate no
- Ошибка с зависанием на
making data connection
лечится командойset ftp:ssl-allow 0
- По дефолту конекшн к ФТП идет по ссылке в виду
username@host.com
, но это мне не подходит, ибо в юзернейме у меня тоже есть собачка. Поэтому юзернейм я передаю через-u username
.
Для полноты картины привожу выдержку из моего финального мейкфайла:
1 2 |
lftp ftp://$(FTP_HOST) -u $(FTP_USER) -e "set ssl:verify-certificate no ; set ftp:ssl-allow 0 ; mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit" |
После этой всего поменял свой башевый скрипт для полного счатья и получил вот такое:
1 2 3 |
make clean make html make ftp_upload |
В итоге процесс написания поста сейчас такой:
- Сначала пишу пост в виде маркдауна
- Потом исполняю
./runpelican.sh
И пост уже на моем блоге 🙂 Красота!