#!/usr/bin/env node
/*
 * Copyright 2016 The Closure Compiler Authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @fileoverview Builds the Closure Compiler using Maven.
 */

'use strict';

const spawn = require('child_process').spawnSync;
const ncp = require('ncp');

const moduleName = 'com.google.javascript:closure-compiler-gwt';
const compilerBuild = spawn(
    'mvn', ['-DskipTests', '--projects', moduleName, 'clean', 'install'], {
      cwd: './closure-compiler',
      stdio: 'inherit',
    });

if (compilerBuild.status !== 0) {
  throw new Error('compiler build failed');
}

const pathsToCopy = ['contrib'];
const targetPath = './closure-compiler/target/closure-compiler-gwt-1.0-SNAPSHOT/jscomp/jscomp.js';
ncp(targetPath, './jscomp.js', (err) => {
  if (err) {
    throw new Error(err);
  }
  pathsToCopy.forEach((p) => {
    ncp('./closure-compiler/' + p, './' + p, function(err) {
      if (err) {
        throw new Error(err);
      }
    });
  });
});
