/**
 * Copyright 2019 Adobe. All rights reserved.
 * This file is licensed to you 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 REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */

module.exports = function (gulp) {
  const fs = require('fs');
  const del = require('del');
  const path = require('path');
  const util = require('../helpers/util');

  gulp.task('clean', function (done) {
    del.sync('./dist/**');
    // Prepare dist folders
    fs.mkdirSync('./dist');
    fs.mkdirSync('./dist/css');
    fs.mkdirSync('./dist/js');

    done();
  });

  gulp.task('cleanup', function (done) {
    const isTLB = util.isTLB();
    const root = isTLB ? 'coral-*' : '';

    // Remove empty README generated by gulp docs
    const README = path.join(root, 'README.md');
    if (fs.existsSync(README) && fs.readFileSync(README).toString().trim() === '') {
      del.sync(README);
    }

    // Remove generated templates
    const templates = path.join(root, 'src/templates/*.js');
    del.sync(templates);

    // Remove generated styles
    const styles = path.join(root, 'src/styles/index.css');
    del.sync(styles);

    done();
  });
};
