/**
 *  ~ Copyright (c) 2023 Beijing Shuto Technology Co,. Ltd. All rights reserved.
 */

const path = require("path");
const fs = require("fs");
var child_process = require("child_process");

/**
 * 读取文件内容,然后替换部分内容后写回
 * @param file
 * @param callback
 */
function replaceContents(file, callback) {
    fs.readFile(file, 'utf8', function (err, data) {
        if (err) throw err;
        data = callback(data);
        fs.writeFile(file, data, 'utf8', writeErr => {
            if (err) throw err;
            console.log(file, 'replace success.');
        });
    });
}

/**
 * 一些自定义操作
 * @param ctx
 */
module.exports = function (ctx) {
    console.log('======================webServer pod re-add hook==========================');
    var rootDir = ctx.opts.projectRoot;
    var project = path.join(rootDir, 'platforms/ios');
    if (fs.existsSync(project)) {
        replaceContents(path.join(project, 'Podfile'), (content) => {
            if (content.indexOf('GCDWebServer') < 0) {
                content = content.replace("\nend", "\n    pod 'GCDWebServer', :git => 'https://m.shuto.cn:8681/github/GCDWebServer.git'\nend")
            }
            return content;
        });
        child_process.execSync("pod install", { cwd: project });
    }
};