package io.github.xhanin.jarup.commands;
import io.github.xhanin.jarup.Command;
import io.github.xhanin.jarup.WorkingCopy;
import java.io.IOException;
public class RmCommand implements Command<RmCommand> {
private WorkingCopy workingCopy;
private String from;
@Override
public RmCommand baseOn(WorkingCopy workingCopy) {
this.workingCopy = workingCopy;
return this;
}
@Override
public RmCommand parse(String[] args) {
if (args.length != 1) {
throw badArgument();
}
String arg = args[0];
if (!arg.startsWith("--from=")) {
throw badArgument();
}
this.from = (arg.substring("--from=".length()));
return this;
}
@Override
public void execute() throws IOException {
workingCopy.deleteFile(from);
}
private IllegalArgumentException badArgument() {
return new IllegalArgumentException("you must only provide file via `--from=` to rm");
}
}