Denoのstd/logのフォーマット指定方法
LogRecord
が渡されるのでそれを使うformetterを定義する。
datetimeのformat変更は
datatime.format
見た。
const formatter = (record: log.LogRecord) => `${ format(record.datetime, "yyyy-MM-dd HH:mm:ss") } [${record.levelName}] ${record.msg}`;
mimic-cross実装
loggerの実装
configにlog関係のformatを追加した。
logFile: "/var/log/mimic-cross.log", logType: "default", // default | verbose | debug
- default: fileがINFO、consoleがWARNING
- verbose: fileがINFO、consoleがINFO
- verbose: fileがDEBUG、consoleがDEBUG
commit: Add log feature commit: Allow change logmode after create instance
deploy自動化判定でelfかどうかをみるように
実行可能なscriptなどにもELFの書き換え処理を適用しようとして エラーになってしまっていたのを修正。
commit: Implement getElfArch commit: Check file is ELF in deployAllCommands
mimicxコマンドの実装
CLIFFY 使って実装した。
tutorialではすべてsubcommandに適用するactionの記述方法が分からなかったけれど、
雰囲気でglobalActionを書いたら使えた。ありがたい。
verbose option
globalなオプションとして-v
をつけるとlogレベルがverboseになるようにした。
loggerを実行時に切り替える方法が分からなくて、とりあえず適当なclassでwrapした。
commit: Allow change logmode after create instance
mimicx deploy-package
mimicx deploy-package coreutils
でcoreutilsがbuildplatformのアーキテクチャになる。
commit: Add CLI mimicx
hostにだけパッケージを入れる
forceオプションをつけることでapt/packages下に moduleがないパッケージのdeployを試すことができるようになった。 commit: Add force option to mimicx deploy-packges
host下でapt-getも自動で実行されるため
例えばcurlの入ってないmimic-cross環境で下記コマンドを実行すると、
hostのcurlだけがapt-getされ/usr/bin/curl
にdeployされる。
mimic deploy-package -f curl
試して問題なければhostに絞ることでimageサイズの削減などが期待できる。