LoginSignup
2
1

More than 5 years have passed since last update.

Hugoで生成したコンテンツをlftpでアップロードする

Last updated at Posted at 2018-01-20

いまどきはHugoで生成したコンテンツも、

  1. コンテンツを書く
  2. どこかのプライベートリポジトリにプッシュして
  3. どこかでビルドして
  4. ステージング環境で確認して
  5. 公開リポジトリにプッシュして
  6. Webサーバーにデプロイ

みたいなことが当たり前になってきていますね

でもそんなに大事じゃないサイトの構築にそんなにリソースをかけてられない

大事じゃないサイト=なにかをやらかしてとしても、しれっと再デプロイするだけで済んでしまうサイト

でもFTPでやるのは面倒くさい

  1. コンテンツを書く
  2. ローカルでビルドするとWebサーバーにアップロード

くらいでちょうどいい

やってみた

lftpを使えばいいみたい
lftp - Sophisticated file transfer program

インストール

$ sudo apt -y install lftp

設定ファイルを書く

$ nano lftp.dat
open -u [ID],[Password] [FTPServer]
mirror -R --only-newer --verbose=3 --log=/hugo/site/lftp.log /hugo/site/public /
echo end
close
quit

キモなのはmirrorコマンド

mirror [option] [src] [dist] 

上に書いた設定だと

  • -R:[src]がローカル側、[dist]がリモート側になる
  • --only-newer:新しいファイルだけコピーする
  • --verbose=3:コマンドが出す表示の詳細度
  • log=/hugo/site/lftp.log:ログ・ファイルのパス
  • /hugo/site/public:Hugoで生成されるコンテンツが入ったディレクトリ
  • /:Webサーバーのディレクトリ

あとopenコマンドでパスワードを指定するときに、パスワードに&が含まれるときは''(一重引用符)でくくってあげるとうまくいった

lftpでアップロードする

$ lftp -f lftp.dat

で設定ファイルを読み込んで実行される

Hugoでコンテンツを生成したらアップロードする

$ nano site_generate.sh
#!/bin/sh
cd /hugo/site
rm -rf public/
hugo --destination public --theme shirouto
rm lftp.log
lftp -f lftp.dat
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1