lw-build-system/create.sh

102 lines
2.3 KiB
Bash
Raw Normal View History

2007-08-14 14:34:41 +01:00
#!/bin/sh
2006-07-24 14:24:06 +01:00
#
2009-01-03 22:55:04 +00:00
# (c)2009, Laurence Withers. Released under the GNU GPL. See file
2006-07-24 14:24:06 +01:00
# COPYING for details.
#
# Used to create a new project. You pass it the template parameters, it
# does the rest.
2006-07-24 14:49:31 +01:00
[ -z "${VERBOSE}" ] && VERBOSE="0"
2006-07-24 14:24:06 +01:00
# Sanity checks
case "$#" in
1)
DEST_DIR="$(pwd)"
P="$1"
;;
2)
DEST_DIR="$1"
P="$2"
;;
**)
echo "Creates a new project using lw-build-system."
echo "Usage: $0 [path/to/projects] @P@"
echo " path/to/projects directory in which project subdir will be created"
echo " @P@ package name"
2006-07-24 14:24:06 +01:00
exit 1
;;
esac
2006-07-24 14:24:06 +01:00
cd "$(dirname $0)"
2006-07-24 14:29:53 +01:00
TEMPLATE="$(pwd)/skel"
DEVSCRIPTS="$(pwd)/scripts"
2006-07-24 14:24:06 +01:00
# Get arguments, include standard functions
2007-08-14 14:34:41 +01:00
source "${TEMPLATE}/scripts/functions.sh" || exit 1
2006-07-24 14:37:44 +01:00
DEST_DIR="${DEST_DIR}/${P}"
2006-07-24 14:24:06 +01:00
2006-07-25 18:41:03 +01:00
# Ensure that we have our .lwbuildrc set up correctly.
2007-08-14 14:34:41 +01:00
LWBUILDRC="${HOME}/.lwbuildrc"
if [ ! -e "${LWBUILDRC}" ]
2006-07-25 18:41:03 +01:00
then
echo "You don't have a ${LWBUILDRC}, so I'll create a blank one for you."
do_cmd cp skel-.lwbuildrc ${LWBUILDRC}
echo "Edit this file, and then re-run the build process."
exit 1
fi
do_cmd source ${LWBUILDRC} || exit 1
2006-07-25 18:41:03 +01:00
2006-07-24 14:24:06 +01:00
# 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
do_cmd cd "${DEST_DIR}" || exit 1
do_cmd mkdir src || exit 1
2006-07-24 14:24:06 +01:00
print_success "Done: $(pwd)"
# Fixups
echo "Installing symlinks, fixing up stuff..."
# Install devscript symlinks
do_cmd ln -s ${DEVSCRIPTS}/* scripts/ || exit 1
2006-07-24 14:24:06 +01:00
print_success "Done"
2006-07-24 14:24:06 +01:00
# Substitute all relevant variables in files
echo " Substituting variables in files"
YEAR="$(date +%Y)"
do_cmd find . -type f -exec sed \
-e "s,@P@,${P},g" \
-e "s,@AUTHOR@,${AUTHOR},g" \
-e "s,@EMAIL@,${EMAIL},g" \
-e "s,@YEAR@,${YEAR},g" \
-e "s,@KATE_MODELINE@,${KATE_MODELINE},g" \
-e "s,@VIM_MODELINE@,${VIM_MODELINE},g" \
-i {} \; || exit 1
2006-07-24 14:24:06 +01:00
# Print the todo list
echo
echo " ======== TODO list ========"
find . -type f -a -not -path './scripts/build.*' -exec grep -Hrn @TODO@ {} \;
2006-07-24 14:24:06 +01:00
print_success "Done"
2006-07-25 18:41:03 +01:00
# kate: replace-trailing-space-save true; space-indent true; tab-width 4;
# vim: expandtab:ts=4:sw=4