cronRパッケージで環境変数を指定する機能を追加するPRをした

by
カテゴリ:
タグ:

igjitさん、hanaoriさんと共に「Rが生産性を高める〜データ分析ワークフロー効率化の実践〜」を共著しました。

電子版の発売は今日1/21です。もうご購入頂いた方、ありがとうございます。

紙版の発売は1/26となっています。こちらも早くみなさんの元にお届けしたいですね。

首都圏一部店舗では先行発売をして頂いており、Twitter検索すると以下が出てきます。

昨今の情勢が情勢ではありますが、もしお近くにお越しの際は、是非とも手に取って頂けますと幸いです。

本題

さて、宣伝が長くなりましたが、早くもご購入頂いた方から、感想や実践した結果の報告などを頂いております。ありがとうございます。

その中に本書で紹介したcronRパッケージの機能が不足しているというコメントがありました。コメントが頂けるのが嬉し過ぎて舞い上がってGitHubにて機能追加を提案してきました(https://github.com/bnosac/cronR/pull/47)。以下の方法でインストールすると新機能をお試し頂けます。

install.packages('remotes')
remotes::install_github('bnosac/cronR#47')

cronRパッケージはmacOSやLinuxにおいてRスクリプトやコマンドの定期実行を支援するパッケージです。

しかし日本語ユーザーなどは文字化けに遭遇することがあるようです。

これはcronそのものの環境変数を設定すると解決できます。

cronで文字化けするときの対処 https://www.koikikukan.com/archives/2013/08/12-000300.php

ところがcronR::cron_add関数には該当する機能がなかったわけですね。

そこで以下のようにenv引数を追加してよしなに環境変数を指定できるようにしました。

cronR::cron_add(
  command = sprintf('echo "$LANG" > %s/cronR.log', Sys.getenv('HOME')),
  frequency = 'minutely',
  id = 'test1',
  description = 'My procest 1',
  tags = c('lab', 'xyz'),
  ask = FALSE,
  env = c(LANG = "en_US.UTF-8")
)

便利ですね!

私はcronの環境変数をこのように変更できることを知りませんでした。

読者の皆様から私も勉強するチャンスを頂けるのでありがたいかぎりです。