92 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			92 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.
 | 
						|
[ -z "${VERBOSE}" ] && VERBOSE="0"
 | 
						|
 | 
						|
 | 
						|
 | 
						|
# 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
 | 
						|
 | 
						|
DEST_DIR="${DEST_DIR}/${P}"
 | 
						|
 | 
						|
 | 
						|
 | 
						|
# 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}"
 | 
						|
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}"
 |