blob: 2f4f74b7a57ee2cafc6b027b1d5876b911fdf527 [file] [log] [blame]
#!/bin/bash
# Copyright 2011 The Apache Software Foundation
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
# Arguments to this script:
# The output directory for the result scripts
# The path to the script template file.
# A file containing the list of tools, one per line.
# This script should be run in the base directory of the project.
# It will run 'bin/sqoop help' and determine the names of all subprograms,
# and then generate wrapper scripts for each of these.
set -e
bin=`dirname $0`
bin=`cd ${bin} && pwd`
outdir=$1
template=$2
toollistfile=$3
if [ -z "$outdir" ]; then
echo "Output directory is required as the first argument."
exit 1
fi
if [ -z "$template" ]; then
echo "The script template filename is required as the second argument."
exit 1
fi
if [ -z "$toollistfile" ]; then
echo "The list of tools is not specified"
exit 1
fi
if [ ! -d "$outdir" ]; then
echo "Output directory does not exist!"
exit 1
fi
if [ ! -f "$template" ]; then
echo "Could not find template file: " $template
exit 1
fi
if [ ! -f "$toollistfile" ]; then
echo "Could not find tool list file: " $toollistfile
exit 1
fi
# Query 'sqoop help' for the list of available commands.
# The output of 'sqoop help' has been written to $toollistfile.
subprograms=`cat $toollistfile | awk ' BEGIN {use=0} /^$/ {use=0} \
{ if (use) { print $1 } else { } } /^Available/ {use=1} '`
# For each of these, copy the template into place and sed the
# subcommand's name in.
for p in $subprograms; do
target="${outdir}/sqoop-${p}"
cp "${template}" "${target}"
chmod +x "${target}"
sed -i -e "s/SUBCOMMANDMARKER/$p/" "${target}"
done