こんにちは、ブレイブソフトエンジニアのsatoです。
最近は暑かったり寒かったり
そのせいで冬服を出したりしまったり
何かと面倒な季節ですね!

面倒と言えばエンジニアの仕事も色々面倒なことがありますよね。

ちょっとビルドしてよ〜

とか

ちょっとこのファイルをストレージにアップロードしたいんだけど〜

とか

やってみるとちょっとじゃないし

 

ということでそういう仕事は機械にお任せして、我々エンジニアはボーッと空を見上げながら世界平和を考えていたらお仕事が完了している環境を作りましょう!

 

 

シェルスクリプト を使う

自分のマシン上でよくやることはシェルスクリプト にまとめて実行しちゃいましょう!
PC起動時タスクに登録すれば出社してPC起動するだけのお仕事にすることができます。(理想)

他にも

のローカルブランチお掃除とか

よく使うサービスがAPI提供してくれていて、管理用Webページ開くのが面倒な時とか

そういうのはスクリプトにまとめておくと楽ができますね〜

 

例えば自分はGitの操作をターミナルでやるのですが、よく落ちるし、せっかくssh認証パスワード入力省く設定したのにまたパスワード入力するはめになることがしばしばあったのでこんなスクリプトを用意してあります。

#!/bin/bash
cd ~/repository/path
eval `ssh-agent`
ssh-add

これでいつ落ちても元の場所に戻ってきて認証もスルーできるようになります。

GASを使う

GAS(Google Apps Script)を使えばやりたい放題できますね。

Webhookが提供されているサービスと併用すれば面白いです。

例えばchatworkのWebhookを使ってGAPと連携すればメッセージを投稿するだけで自動的にリプライしてくるお友達botができたりするわけです。(悲しい)

chatwork→GAP→SpreadSheet

チャット内容から特定の文字を含むメッセージをSpreadSheetに残すメモ機能のようなものも作れます。

//Postリクエストを受け取る
function doPost(e){
  const token = PropertiesService.getScriptProperties().getProperty("token");
  const room_id = 123456789;
  fetchMessage(token,room_id);
}

//chatworkのメッセージを取得する
function fetchMessage(token, room_id){
  const params = {
    headers: {"X-ChatWorkToken": token},
    method: "get"
  };
  const url = "https://api.chatwork.com/v2/rooms/" + room_id + "/messages?force=0";
  const res = JSON.parse(UrlFetchApp.fetch(url, params).getContentText());
  const name = res[0].account.name;
  var content = res[0].body;
  const link = "https://www.chatwork.com/#!rid" + room_id + "-" + res[0].message_id;
  writeSpreadsheets(name,content,link);
}


//SpreadSheetにパターンを含むコメントを書き込む
function writeSpreadsheets(name,content,link){
  const url = "spreadsheetのurl";
  const spreadsheet = SpreadsheetApp.openByUrl(url);
  const pattern = ["契約01","契約02","契約03"];
  const now = new Date();

  for(var i=0;i<=pattern.length-1;i++){
    if(!content.indexOf(pattern[i])){
      //spreadsheetにパターンと同じ名前のシートを作成してあること
      var sheet = spreadsheet.getSheetByName(pattern[i]);
      var len = pattern[i].length;

      content = content.slice(len);
      content = content.replace(/\r?\n/g, '');
      sheet.appendRow([now,content,name,link]);
    }
  }
}

こんな感じでchatworkから発言するとGASが処理してくれてSpreadSheetに書き込んでくれます。

 

 

いかがでしたか?

紹介した2つを使うだけでもボーッと世界平和を考えるお仕事に一歩近づくのではないでしょうか。

ぜひ一度自身の仕事をふりかえって楽する方法を選択していきましょう!