import { harTasks } from '@ohos/hvigor-ohos-plugin';
 
import fs from 'fs'
 
interface OhPackage {
 
    name: string;
 
    version: number;
 
    description: string;
 
    author: string;
 
}
 
export function renameHarTask(str?: string) {
 
    return {
 
        pluginId: 'RenameHarTaskID',
 
        apply(pluginContext) {
 
            pluginContext.registerTask({
 
                // 编写自定义任务
 
                name: 'renameHarTask',
 
                run: (taskContext) => {
 
                    //读取oh-package.json5,解析出version
 
                    const packageFile = taskContext.modulePath+'\oh-package.json5';
 
                    console.log('file: ', packageFile);
 
                    let fileContent = fs.readFileSync(packageFile, 'utf8');
 
                    console.log(fileContent);
 
                    const content: OhPackage = JSON.parse(fileContent);
 
                    const version = content.version;
 
                    const author = content.author;
 
                console.log('renameHarTask: ', taskContext.moduleName, taskContext.modulePath);
 
                const sourceFile = taskContext.modulePath + '\\build\\default\\outputs\\default\\' + taskContext.moduleName + '.har';
 
                const targetFile = taskContext.modulePath + '\\build\\default\\outputs\\default\\'
 
                    + taskContext.moduleName + '-' + version + '-' + author +'.har';
 
                console.log('renameHarTask: sourceFile: ', sourceFile);
 
                console.log('renameHarTask: targetFile: ', targetFile);
 
                // 修改产物名
 
                fs.rename(sourceFile, targetFile, (err)=> {
 
                    console.log('err: ' + err);
 
                });
 
            },
 
            // 确认自定义任务插入位置
 
            dependencies: ['default@PackageHar'],
 
            postDependencies: ['assembleHar']
 
        })
 
    }
 
}
 
 
}
 
export default {
 
    system: harTasks,
 
    plugins:[renameHarTask()]
 
}