3 # Shell script to automatically create an Anjuta 1.x project file
4 # Copyright: Biswapesh Chattopadhyay (biswapesh_chatterjee@tcscal.co.in) 2001-2002
5 # This file can be freely copied for any purpose. There are NO guarantees.
8 # Template file is in data dir, so:
9 # TEMPLATE="$(dirname $0)/anjuta_project.template"
10 TEMPLATE
="@PACKAGE_DATA_DIR@/anjuta_project.template"
11 AN_SKIP_DIRS
=${AN_SKIP_DIRS:-"intl"}
12 AN_SOURCE_EXTN
=${AN_SOURCE_EXTN:-"c pc sc C cpp cxx cc java"}
13 AN_HEADER_EXTN
=${AN_HEADER_EXTN:-"h H hxx hpp hh"}
14 AN_PIXMAP_EXTN
=${AN_IMAGE_EXTN:-"jpeg jpg png gif xpm bmp ico tiff"}
15 AN_DOC_EXTN
=${AN_DOC_EXTN:-"html sgml sgml README INSTALL ChangeLog NEWS COPYING CREDITS AUTHORS THANKS TODO HACKING FUTURE"}
16 AN_PO_EXTN
=${AN_PO_EXTN:-"po"}
21 TMPFILE
=/tmp
/$PROGRAM.$$.tmp
23 if [ ! -s "${TEMPLATE}" ]; then
24 echo "Template file ${TEMPLATE} does not exist!" >&2
28 if [ "$DIR" != '.' ]; then
29 if [ ! -d "$DIR" ]; then
30 echo "Directory $1 does not exist !" >&2
35 echo "Unable to chdir to $1" >&2
41 if [ -f "configure.in" ]; then
42 package_line
=$
(grep AM_INIT_AUTOMAKE configure.
in)
43 if [ ! -z "${package_line}" ]; then
44 AN_PROJECT_NAME
=$
(echo ${package_line} |
awk -F'[(),]' '{print $2}')
45 AN_PROJECT_VERSION
=$
(echo ${package_line} |
awk -F'[(),]' '{print $3}')
49 if [ -z "${AN_PROJECT_NAME}" ]; then
50 AN_PROJECT_NAME
=$
(pwd |
awk -F'/' '{print $NF}' |
sed 's/-[0-9][^-]*$//')
51 AN_PROJECT_VERSION
=$
(pwd |
awk -F'/' '{print $NF}' |
awk -F'-' '{if ((NF > 1) && ($NF ~ /^[0-9]/)) print $NF}')
54 AN_PROJECT_NAME
=$
(echo ${AN_PROJECT_NAME} |
sed 's/[ ]//g' |
sed 's/[^0-9a-zA-Z_]/_/g')
55 AN_PROJECT_VERSION
=$
(echo ${AN_PROJECT_VERSION} |
sed 's/[ ]//g')
57 if [ -z "${AN_PROJECT_NAME}" ]; then
58 echo "WARNING!! Unable to derive project name. Using default value.." >&2
59 AN_PROJECT_NAME
="template"
61 if [ -z "${AN_PROJECT_VERSION}" ]; then
62 echo "WARNING!! Unable to derive project version. Using default value.." >&2
63 AN_PROJECT_VERSION
="0.99"
66 PRJ_FILE
="${AN_PROJECT_NAME}.prj"
68 if [ -f "${PRJ_FILE}" ]; then
69 if ! mv ${PRJ_FILE} ${PRJ_FILE}.$$
; then
70 echo "Unable to backup existing project file! Exiting." >&2
74 echo "WARNING!! Existing project file ${PRJ_FILE} backed up as ${PRJ_FILE}.$$" >&2
82 for file in `find . -type f -print`; do
83 name
=`echo $file | cut -c3-`
84 top_dir
=`echo $name | awk -F'/' '{if (NF > 1) print $1; else print "."}'`
86 for dir
in $AN_SKIP_DIRS; do
87 if [ "$dir" = "${top_dir}" ]; then
92 if [ $skip -eq 0 ]; then
94 file_extn
="`echo $name | awk -F'[/.]' '{print $NF}'`"
95 for extn
in $AN_SOURCE_EXTN; do
96 if [ "$extn" = "$file_extn" ]; then
97 AN_SOURCE_FILES
="$AN_SOURCE_FILES $name"
98 echo "Adding source file $name.."
103 if [ $found -eq 0 ]; then
104 for extn
in $AN_HEADER_EXTN; do
105 if [ "$extn" = "$file_extn" ]; then
106 AN_HEADER_FILES
="$AN_HEADER_FILES $name"
107 echo "Adding header file $name.."
113 if [ $found -eq 0 ]; then
114 for extn
in $AN_PIXMAP_EXTN; do
115 if [ "$extn" = "$file_extn" ]; then
116 AN_PIXMAP_FILES
="$AN_PIXMAP_FILES $name"
117 echo "Adding pixmap file $name.."
123 if [ $found -eq 0 ]; then
124 for extn
in $AN_DOC_EXTN; do
125 if [ "$extn" = "$file_extn" ]; then
126 AN_DOC_FILES
="$AN_DOC_FILES $name"
127 echo "Adding doc file $name.."
133 if [ $found -eq 0 ]; then
134 if [ "$AN_PO_EXTN" = "$file_extn" -a "$AN_PO_DIR" = "$top_dir" ]; then
135 name
="`echo $name | cut -c4-`"
136 AN_PO_FILES
="$AN_PO_FILES $name"
137 echo "Adding PO file $name.."
141 if [ $found -eq 0 ]; then
142 echo "Skipping $name.."
145 echo "Ignoring $name.."
149 cat ${TEMPLATE} |
while read line
; do
150 eval "echo ${line}" >>${PRJ_FILE}
153 echo "Created project file ${PRJ_FILE} successfully."