CoffeeScriptで、makefileみたいなファイルの更新日時比較


makefile

やっぱし更新日時比較したいよね。

というわけで、ちょっと書いた。とりあえず、絶賛丸一日研修講師やっとるので、やっつけですんまへん。

mtime.coffee
fs = require('fs')

needUpdateSync = (targetfile, objectfile_arr, missing_is_ok = false) ->
  if not fs.existsSync targetfile
    for objectfile in objectfile_arr
      if not fs.existsSync objectfile
        if missing_is_ok
          continue
        else
          return 'missing both'
    return 'update'
  targetstat = fs.statSync targetfile
  for objectfile in objectfile_arr
    if not fs.existsSync objectfile
      if missing_is_ok
        continue
      else
        return 'missing object'
    objectstat = fs.statSync objectfile
    if targetstat.mtime < objectstat.mtime
      return 'update'
  return 'nothanks'

missingFilesSync = (objectfile_arr) ->
  arr = []
  for objectfile in objectfile_arr
    if not fs.existsSync objectfile
      arr.push objectfile
  return arr

#how to use

console.log needUpdateSync('target.file',['object1.file', 'object2.file'])

これこそ非同期で書け、って感じ? 並行実行効くもんね。後で気が向いたら書き直す。