#!/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 2 ] then echo "Wrong number of arguments. Expecting:" echo " ./install.sh @P@ " echo " dest_dir directory in which project subdir will be created" echo " @P@ package name)" exit 1 fi cd "$(dirname $0)" TEMPLATE="$(pwd)/skel" DEVSCRIPTS="$(pwd)/scripts" # Get arguments, include standard functions source ${TEMPLATE}/scripts/functions.sh || exit 1 DEST_DIR="$1"; shift P="$1"; shift DEST_DIR="${DEST_DIR}/${P}" # Ensure that we have our .lwbuildrc set up correctly. LWBUILDRC=~/.lwbuildrc if [ ! -e ${LWBUILDRC} ] 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 # 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 print_success "Done: $(pwd)" # Fixups echo "Installing symlinks, fixing up stuff..." # Move the project files to something more sensible do_cmd mv project.kdevelop ${P}.kdevelop || exit 1 do_cmd mv project.kdevelop.filelist ${P}.kdevelop.filelist || exit 1 # Install devscript symlinks do_cmd ln -s ${DEVSCRIPTS}/* scripts/ || exit 1 print_success "Done" # 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 # Print the todo list echo echo " ======== TODO list ========" find . -type f -a -not -path './scripts/build.*' -exec grep -Hrn @TODO@ {} \; print_success "Done" # kate: replace-trailing-space-save true; space-indent true; tab-width 4; # vim: expandtab:ts=4:sw=4