package com.taobao.easyweb.core.agent;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.io.IOUtils;
import org.springframework.stereotype.Component;
import com.taobao.easyweb.core.command.Command;
import com.taobao.easyweb.core.command.CommandExecutor;
import com.taobao.easyweb.core.command.server.CommandExecutorFactory;
@Component
public class DeployExecutor extends CommandExecutor {
public DeployExecutor() {
CommandExecutorFactory.regist(1, this);
}
@Override
public void execute(Command command) {
byte[] data = command.getData();
String fileName = "/home/admin/easyweb/tmp/" + command.getAppKey() + ".zip";
File receiveFile = new File(fileName);
File rename = new File("/home/admin/easyweb/tmp/" + command.getAppKey() + ".zip." + new SimpleDateFormat("yyyy-MM-dd-HHmmss").format(new Date()));
try {
if (receiveFile.exists()) {
rename.createNewFile();
receiveFile.renameTo(rename);
}
receiveFile.createNewFile();
OutputStream out = new FileOutputStream(receiveFile);
IOUtils.copy(new ByteArrayInputStream(data), out);
IOUtils.closeQuietly(out);
ZipUtil.upzip(fileName, "/home/admin/easyweb/deploy/apps/");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}