The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

$0 CMD FILE [MESSAGE_HEAD]

 機能: 

   URLで示されるファイルをローカルの指定ディレクトリに保管する。
  
 引数:  
 
  このコマンドの実行には、2個または3個の引数を必要とする : 

  1番目の引数CMDは実行するコマンドを表す文字列 'ls' や 'crontab -l ' や 'last' など。
  2番目の引数DIRは、Gitのレポジトリであるローカルのディレクトリの下におくファイルのパス名
  3番目の引数STRは、Gitのコミットのメッセージに残す文字列(ファイルの内容の短い説明など)。

 引数のオプション : 

   --push : git pushも行う。
   --catchf : コマンドの実行に失敗した場合でも、処理は進める。 ( catch failure で名前は考えた。)

 想定されている目的: 

   + インターネット上に公開されている任意のファイルをGitレポジトリに保管する。
   + URLで指定できる特定のファイルを、cronで定期的にダウンロードして、保管する。

 利用例 : 

  cmdout2git date date date        # date というコマンドを実行して、date というファイルに結果を保管し、dateというコミットメッセージを先頭に、gitのレポジトリにコミット。
  cmdout2git 'ls -l' ls-l 'ls -l'  # コマンド ls -l を実行して、ファイル ls-l に結果を保管し、コミット。メッセージは ls -l で始まって、いろいろ補助情報を追加。
  cmdout2git last last last --push # 誰がログインしたのか、再起動(reboot)がいつ行われたのか、が分かる。さらに、リモートレポジトリに push する。


  git remote -v                    # どこにpushされるか知りたいときに便利。

 必要な準備: 

   1. Gitレポジトリを用意すること。そのレポジトリにするディレクトリで、"git init" を実行しておくこと。

  開発メモ : 

   * 関数qxで実行したシステムコマンドが、短い時間で終了しない場合が厄介。forkを使った凝ったプログラムにはまだしてない。