94 lines
2.0 KiB
Bash
Executable File
94 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# (c)2006, Laurence Withers. Released under the GNU GPL. See file
|
|
# COPYING for details.
|
|
#
|
|
|
|
|
|
|
|
# Used to create a new project. You pass it the template parameters, it
|
|
# does the rest.
|
|
|
|
|
|
|
|
# Sanity checks
|
|
if [ $# -ne 4 ]
|
|
then
|
|
echo "Wrong number of arguments. Expecting:"
|
|
echo " ./install.sh <dest_dir> @P@ @PC@ @HEADER_NAME@"
|
|
echo " dest_dir directory in which project subdir will be created"
|
|
echo " @P@ package name (e.g. \"libnmc\")"
|
|
echo " @PC@ C identifier version of @P@, used in header etc."
|
|
echo " @HEADER_NAME@ name of header (e.g. \"lw-support\" or \"nmc\")"
|
|
exit 1
|
|
fi
|
|
|
|
cd "$(dirname $0)"
|
|
TEMPLATE="$(pwd)/skel"
|
|
|
|
|
|
|
|
# Get arguments, include standard functions
|
|
source ${TEMPLATE}/scripts/functions.sh || exit 1
|
|
DEST_DIR="$1"; shift
|
|
P="$1"; shift
|
|
PC="$1"; shift
|
|
HEADER_NAME="$1"; shift
|
|
|
|
|
|
|
|
# Copy to destination directory. Deal with the case where the user has
|
|
# specified the name of the resulting directory, and the case where the
|
|
# user simply specified where the directory should be created.
|
|
echo "Copying ${TEMPLATE} directory..."
|
|
do_cmd cp -rp "${TEMPLATE}" "${DEST_DIR}" || exit 1
|
|
cd "${DEST_DIR}"
|
|
if [ -d "${TEMPLATE}" ]
|
|
then
|
|
mv "${TEMPLATE}" "${P}"
|
|
cd "${P}"
|
|
fi
|
|
print_success "Done: $(pwd)"
|
|
|
|
|
|
|
|
# Move the project files to something more sensible
|
|
mv project.kdevelop ${P}.kdevelop
|
|
mv project.kdevelop.filelist ${P}.kdevelop.filelist
|
|
|
|
|
|
|
|
# Build sed script
|
|
echo "Changing variables..."
|
|
echo " Building script"
|
|
SED_SCRIPT="script.sed"
|
|
for param in P PC HEADER_NAME
|
|
do
|
|
echo "s,@${param}@,${!param},g" >> "${SED_SCRIPT}"
|
|
done
|
|
|
|
# Create a list of all the files.
|
|
echo " Building list of files"
|
|
ALL_FILES=$(find . -type f -not -name script.sed)
|
|
|
|
# Run sed script on all files.
|
|
echo " Running script"
|
|
for f in ${ALL_FILES}
|
|
do
|
|
do_cmd sed -f "${SED_SCRIPT}" -i "${f}" || exit 1
|
|
done
|
|
print_success "Done"
|
|
|
|
|
|
|
|
# Print the todo list
|
|
echo
|
|
echo " ======== TODO list ========"
|
|
grep -Hn @TODO@ ${ALL_FILES}
|
|
print_success "Done"
|
|
|
|
|
|
|
|
# Clean up
|
|
rm "${SED_SCRIPT}"
|