import * as vscode from 'vscode';
import { Interface } from 'readline';
const fs = require("fs-extra");
const path = require("path");
const App = require('antmove')();
const WechatPlugin = require('@antmove/wx-alipay');

interface AntmoveOptions {
	input: string;
	output: string;
}
function transfrom (opts: AntmoveOptions) {
	App.use(
		WechatPlugin, 
		{
			entry: opts.input,
			dist: opts.output,
			env: 'prod',
			remote: false
		})
		.start();
}

export function activate(context: vscode.ExtensionContext) {

	let disposable = vscode.commands.registerCommand('extension.antmove', () => {
		let i = 0;

		vscode.window.showWorkspaceFolderPick()
		.then (function (res: any) {
			if (!res) {
				vscode.window.showWarningMessage('请选择一个可转换的小程序项目目录。');
			} else {
				/**
				 * 转换当前工作区
				 */

				let dirname = res.uri.fsPath;
				let projectName = res.name;
				vscode.window.showInformationMessage('请选择一个空的目录地址作为转换后的输出目录。');
				vscode.window.showOpenDialog({
					canSelectFiles: false,
					canSelectFolders: true,
					canSelectMany: false
				})
				.then(function (res) {
					if (!res) {
						vscode.window.showErrorMessage('请选择转换后生成目录地址。');
						return false;
					}
					let outputPath = res[0].path;

					try {
						transfrom({
							input: dirname,
							output: path.join(outputPath, projectName)
						});
						vscode.window.showInformationMessage('欢迎使用蚂蚁搬家工具，您的项目已成功完成转换。');
					} catch (error) {
						vscode.window.showErrorMessage(error);
					}
				});
			}
		}, function (err) {
			if (err) {
				console.error(err);
			}
		});
	});

	context.subscriptions.push(disposable);
}
