node.js で遊ぶ
先月まで遊んでいたことの小まとめ。
とりあえず、node.jsでローカルのコマンド(スクリプト)を実行する。
目的: port 2100 で fetchmailをできるだけ簡単に動かすこと。
// checkMail.js
// check mail
// sync
const execSync = require('child_process').execSync;
// web
const http = require('http');
const port = 2100;
//var fs = require('fs');
var server = http.createServer(
(request,response)=>{
try {
result = execSync('/usr/bin/fetchmail').toString();
} catch (err) {
result = err.stdout;
}
response.setHeader('Content-Type', 'text/html');
response.write('<html>');
response.write('<head>');
// response.write(' <script type="text/javascript" language="javascript">setTimeout("location.reload()",5000);</script>');
response.write('<meta charset="UTF-8" />');
response.write('</head>');
response.write('<body><h1>Mail checked</h1>');
response.write(result);
response.write('</body></html>');
response.end();
// console.log(result);
}
);
server.listen(port);
スタートは
$ forever start checkMail.js
動いているnode.jsの一覧は
$ forever list
終了は
$ forever stop checkMail.js
これで次のようにアクセスすれば、
http://(local ip):2100
fetchmailが動き、ブラウザに結果が表示される。
先月にやっていたことのまとめだけ。
http serverを動かす必要もなく、nginxが動いていても同居でき、お手軽ですね。
もう少し、
・構成的にして、
・セキュアにして、
・外向けにportを開いて、
・IFTTTのmaker channelでアクセスすれば、
Google Homeから音声でサーバのコントロールができる。
気分転換は料理から
さんふらわぁ さっぽろ
windowsのアーカイブを解凍すると文字化けするので、
たまにしか使わないので、いつも忘れてググるため、一応メモ。
参考:日本語を含むZIPファイルを文字化けせず解凍する方法
https://qiita.com/hoo89/items/46dcd8134061c392772f
unarを使う。
installは普通に次で、
$ sudo apt-get install unar
今月の寿し(?)
初、3Dプリンタ製品
梅の国
暖かい一日
terminal modeを実装
michi にterminal modeを実装して、コマンドラインから実行できるようにしました。
次のようにタイトル/年/ログファイルを指定して実行する。
> michi.exe “海沿いコース” 2018 WG20180303012704.log WG20180303024920.log
なお、年の指定はログファイル名に年号を含まない場合にのみ有効になります。
# 上の例では、1940などを指定しても単純に無視される。
これでスクリプト処理できるようになりました。















