#!/bin/sh
# Copyright 2015 Google Inc. 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.
#
# Generates an Eclipse project. If a .project is not present, it will creates
# it and it will overwrite any .classpath file present
#
# Usage: ./setup-eclipse.sh
#

set -eu

cd $(dirname "$0")
cd ..

# Simply creates a Eclipse java project
if [ ! -f ".project" ]; then
  cat >.project <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>bazel</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
</projectDescription>
EOF
fi

./scripts/generate-classpath.sh >.classpath

echo
echo '***'
echo '*** Eclipse project generated'
echo '***'
echo
echo 'You can now import the bazel project into Eclipse.'
