| /* |
| * Copyright (C) 2011 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package vogar.tasks; |
| |
| import java.io.File; |
| import vogar.Result; |
| import vogar.Run; |
| import vogar.Target; |
| import vogar.Vogar; |
| |
| public final class PrepareTarget extends Task { |
| private final Run run; |
| private final Target target; |
| |
| public PrepareTarget(Run run, Target target) { |
| super("prepare target"); |
| this.run = run; |
| this.target = target; |
| } |
| |
| @Override protected Result execute() throws Exception { |
| // Even if runner dir is /vogar/run, the grandparent will be / (and non-null) |
| target.await(run.runnerDir.getParentFile().getParentFile()); |
| if (run.cleanBefore) { |
| target.rm(run.runnerDir); |
| } |
| target.mkdirs(run.runnerDir); |
| target.mkdirs(run.vogarTemp()); |
| target.mkdirs(run.dalvikCache()); |
| for (int i = 0; i < Vogar.NUM_PROCESSORS; i++) { |
| target.forwardTcp(run.firstMonitorPort + i); |
| } |
| // Only forward port if we need to bind to a remote port ourselves. In app debugging DDMS |
| // takes care of opening a port on the device and forwarding it. |
| if (run.debugPort != null) { |
| target.forwardTcp(run.debugPort); |
| } |
| target.mkdirs(run.deviceUserHome); |
| |
| // push ~/.caliperrc to device if found |
| File hostCaliperRc = Vogar.dotFile(".caliperrc"); |
| if (hostCaliperRc.exists()) { |
| target.push(hostCaliperRc, new File(run.deviceUserHome, ".caliperrc")); |
| } |
| return Result.SUCCESS; |
| } |
| } |