blob: b07f6058dab4c22ba1ee49ed12adf03a9da8595c [file] [log] [blame]
// Copyright 2017 The Bazel Authors. All rights reserved.
//
// 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 com.google.devtools.bazel.e4b;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Platform;
import com.google.devtools.bazel.e4b.command.BazelAspectLocation;
/** Implementation of {@link BazelAspectLocation} using Eclipse OSGi Bundle locations */
class BazelAspectLocationImpl implements BazelAspectLocation {
// Returns the path of the resources file from this plugin.
private static File getAspectWorkspace() {
try {
URL url = Platform.getBundle(Activator.PLUGIN_ID).getEntry("resources");
URL resolved = FileLocator.resolve(url);
return new File(resolved.getPath());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
private static File WORKSPACE_DIRECTORY = getAspectWorkspace();
@Override
public File getWorkspaceDirectory() {
return WORKSPACE_DIRECTORY;
}
@Override
public String getAspectLabel() {
return "//:e4b_aspect.bzl%e4b_aspect";
}
}