const exec = require('child_process').exec

exec('git describe --tags `git rev-list --tags --max-count=1`', (err, stdout, stderr) => {
  if (err !== null) {
    process.exit(1)
  }
  const tag = stdout.trim()
  console.log('Check changes for tag:', tag)
  exec(`git fetch --tags && git diff ${tag} --name-only`, (err, stdout, stderr) => {
    if (err !== null) {
      process.exit(1)
    }
    const changedFiles = stdout.trim().split('\n')
    const modelsChanged = changedFiles.some(file => file.startsWith('models/'))
    const versionChanged = changedFiles.some(file => file.endsWith('version.txt'))
    if (modelsChanged && !versionChanged) {
      throw new Error('Please update model version')
    }
    console.log('OK')
  })
})