mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 20:13:32 +01:00
Re-add jw-build-create-project.sh, because it's needed for the toplevel Makefile's git-init-% target. Signed-off-by: Jan Lindemann <jan@janware.com>
197 lines
2.8 KiB
Bash
197 lines
2.8 KiB
Bash
#!/bin/bash
|
|
|
|
log()
|
|
{
|
|
echo $@
|
|
}
|
|
|
|
err()
|
|
{
|
|
log $@
|
|
}
|
|
|
|
fatal()
|
|
{
|
|
err $@
|
|
exit 1
|
|
}
|
|
|
|
usage()
|
|
{
|
|
echo "$myname [-h] [-s summary] [-d description] [-g pkg-group] name"
|
|
[ "$1" ] && exit $1
|
|
}
|
|
|
|
cat_Makefile()
|
|
{
|
|
cat <<-EOT
|
|
TOPDIR = .
|
|
|
|
include \$(TOPDIR)/make/proj.mk
|
|
include \$(JWBDIR)/make/topdir.mk
|
|
EOT
|
|
}
|
|
|
|
cat_VERSION()
|
|
{
|
|
cat <<-EOT
|
|
1.0.0-0-dev
|
|
EOT
|
|
}
|
|
|
|
cat_make_Makefile()
|
|
{
|
|
cat <<-EOT
|
|
TOPDIR = ..
|
|
|
|
include \$(TOPDIR)/make/proj.mk
|
|
include \$(JWBDIR)/make/make.mk
|
|
EOT
|
|
}
|
|
|
|
cat_make_proj_mk()
|
|
{
|
|
cat <<-EOT
|
|
# to be included from inside the project directory
|
|
|
|
DEV_PROJECTS_DIR ?= \$(TOPDIR)/..
|
|
ifeq (\$(TARGET),mingw)
|
|
FLAVOUR_PATH_PREFIX = win32/
|
|
endif
|
|
JWBDIR ?= \$(firstword \$(wildcard \$(DEV_PROJECTS_DIR)/jw-build \$(BUILD_TOOLS_PREFIX)/opt/\$(FLAVOUR_PATH_PREFIX)jw-build))
|
|
|
|
USE_PROJECT_LIB = false
|
|
HDRDIR_SCOPE_SUFFIX = \$(PROJECT)
|
|
EOT
|
|
}
|
|
|
|
cat_make_project_conf()
|
|
{
|
|
local login=$JANWARE_USER
|
|
[ "$login" ] || login=`whoami`
|
|
|
|
local fullname=`getent passwd $login | cut -d: -f5`
|
|
[ "$fullname" ] || fullname=$JANWARE_USER
|
|
[ "$fullname" ] || fullname=`whoami | xargs getent passwd | cut -d: -f5`
|
|
[ "$fullname" ] || fullname=`whoami`
|
|
|
|
cat <<-EOT
|
|
[summary]
|
|
$summary
|
|
|
|
[description]
|
|
$description
|
|
|
|
[global]
|
|
group = "$pkg_group"
|
|
subpackages = $subpackages
|
|
license = Copyright (c) $fullname, all rights reserved
|
|
jw-maintainer = $JANWARE_USER
|
|
|
|
[build]
|
|
libname = none
|
|
|
|
[pkg.requires.jw]
|
|
devel = $name-run = VERSION-REVISION, jw-build-devel = VERSION
|
|
build = jw-build-devel
|
|
EOT
|
|
}
|
|
|
|
cat_gitignore()
|
|
{
|
|
cat <<-EOT
|
|
*.done
|
|
*.dist
|
|
*.dep.mk
|
|
.cache.mk
|
|
*.o
|
|
*.so.*
|
|
*.so
|
|
*.a
|
|
*.rep
|
|
ld-*.conf
|
|
*.ldscript
|
|
*.pc
|
|
$name
|
|
*_generated_*
|
|
*.secret
|
|
local.mk
|
|
.gdb_history
|
|
dist
|
|
mkspec.sh
|
|
*.out
|
|
*.orig
|
|
*.old
|
|
.feedfs_history
|
|
.exrc
|
|
*.swp
|
|
*tmp*
|
|
__init__.py
|
|
__pycache__
|
|
EOT
|
|
}
|
|
|
|
# ---------------------- here we go
|
|
|
|
myname=`basename $0`
|
|
projdir=.
|
|
|
|
summary=
|
|
description=
|
|
subpackages="run"
|
|
|
|
eval set -- `getopt -- hd:s:p:g: "$@"`
|
|
|
|
while [ "$1" != -- ]; do
|
|
case $1 in
|
|
-d)
|
|
eval description=\"$2\"
|
|
shift;;
|
|
-s)
|
|
eval summary=\"$2\"
|
|
shift;;
|
|
-p)
|
|
eval subpackages=\"$2\"
|
|
shift;;
|
|
-g)
|
|
eval pkg_group=\"$2\"
|
|
shift;;
|
|
-h)
|
|
usage 0;;
|
|
*)
|
|
usage 1;;
|
|
esac
|
|
shift
|
|
done
|
|
shift
|
|
|
|
[ -z "$description" ] && description="$summary"
|
|
[ -z "$summary" ] && summary="$description"
|
|
[ -z "$pkg_group" ] && pkg_group="Amusements/Teaching/Other"
|
|
|
|
[ -f $projdir/Makefile ] || {
|
|
fatal "$projdir doesn't contain a Makefile"
|
|
}
|
|
|
|
name="$1"
|
|
|
|
[ -d $projdir/$name ] && {
|
|
fatal "$projdir/$name already exists"
|
|
}
|
|
|
|
set -e
|
|
|
|
mkdir -p $projdir
|
|
mkdir $name
|
|
cd $projdir/$name
|
|
|
|
mkdir make
|
|
cat_Makefile > Makefile
|
|
cat_make_Makefile > make/Makefile
|
|
cat_VERSION > VERSION
|
|
cat_make_proj_mk > make/proj.mk
|
|
cat_make_project_conf > make/project.conf
|
|
cat_gitignore > .gitignore
|
|
|
|
log Successfully created project template \"$name\".
|
|
|