mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
$(TOPDIR), make, scripts: Merged changes from V_1_2_3_33_YAPPLICATION_INIFILE_CTOR
Signed-off-by: Jan Lindemann <jan@jannet.de>
This commit is contained in:
parent
6fbb886828
commit
78bd6215b4
12 changed files with 346 additions and 28 deletions
4
CHANGES
4
CHANGES
|
|
@ -414,3 +414,7 @@ Version 1.2.3
|
|||
-------------
|
||||
o changed interfaces of YVariant and YStringTree
|
||||
o joined V_1_2_3_20_CASAS_NOVAS
|
||||
|
||||
Version 1.2.4
|
||||
-------------
|
||||
o merged changes from V_1_2_3_33_YAPPLICATION_INIFILE_CTOR
|
||||
|
|
|
|||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
|||
1.2.3-34-dev
|
||||
1.2.4-0-dev
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ else
|
|||
endif
|
||||
|
||||
attach:
|
||||
cgdb $(EXE_PATH) -p $(PID)
|
||||
gdb $(EXE_PATH) -p $(PID)
|
||||
|
||||
attach-ddd:
|
||||
ddd $(EXE_PATH) -p $(PID)
|
||||
|
|
|
|||
104
make/defs.mk
104
make/defs.mk
|
|
@ -769,6 +769,7 @@ ifeq ($(USE_COMPILER_OPTIMIZATION_OPTS),true)
|
|||
BUILD_CPPFLAGS += -funroll-loops -O2
|
||||
else
|
||||
NO_OPT_FLAGS = \
|
||||
-g -fno-inline -fno-omit-frame-pointer -fno-builtin -fno-optimize-sibling-calls \
|
||||
-fno-inline-functions-called-once \
|
||||
-fno-tree-loop-optimize \
|
||||
-fno-early-inlining
|
||||
|
|
@ -929,18 +930,18 @@ PREREQ += DSPCD
|
|||
endif
|
||||
|
||||
ifneq ($(filter dspcd-ec,$(PREREQ_BUILD)),)
|
||||
DSPCD_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspc/src/dspcd /opt/$(FLAVOUR_PATH_PREFIX)dspider/dspcd-ec))
|
||||
DSPCD_EXE_PREFIX = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspc/src/dspcd /opt/$(FLAVOUR_PATH_PREFIX)dspider))
|
||||
DSPCD_EC_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspc/src/dspcd-ec $(CVS_PROJ_DIR)/dspc/src/dspcd /opt/$(FLAVOUR_PATH_PREFIX)dspider/dspcd-ec))
|
||||
DSPCD_EC_EXE_PREFIX = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspc/src/dspcd-ec $(CVS_PROJ_DIR)/dspc/src/dspcd /opt/$(FLAVOUR_PATH_PREFIX)dspider))
|
||||
# include $(DSPCD_DIR)/make/public.mk
|
||||
DSPIDER_DSPCD_VERSION = $(call version,$(DSPCD_DIR))
|
||||
DSPIDER_DSPCD_EC_VERSION = $(call version,$(DSPCD_EC_DIR))
|
||||
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)dspider-dspcd-ec-run = $(DSPIDER_DSPCD_VERSION)
|
||||
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)dspider-dspcd-ec-devel = $(DSPIDER_DSPCD_VERSION)
|
||||
PREREQ_BUILD += ytools
|
||||
PREREQ_BUILD += dspider-shared-ec
|
||||
PREREQ_BUILD += userver
|
||||
INCLUDE += -I$(DSPCD_DIR)/include
|
||||
LIBFLAGS += -L$(DSPCD_EXE_PREFIX)/lib -ldspcd-ec
|
||||
PREREQ += DSPCD
|
||||
PREREQ_BUILD += userver xchange
|
||||
INCLUDE += -I$(DSPCD_EC_DIR)/include
|
||||
LIBFLAGS += -L$(DSPCD_EC_EXE_PREFIX)/lib -ldspcd-ec
|
||||
PREREQ += DSPCD_EC
|
||||
endif
|
||||
|
||||
ifneq ($(filter dsprout,$(PREREQ_BUILD)),)
|
||||
|
|
@ -973,17 +974,17 @@ PREREQ += DSPIDER_SHARED
|
|||
endif
|
||||
|
||||
ifneq ($(filter dspider-shared-ec,$(PREREQ_BUILD)),)
|
||||
DSPIDER_SHARED_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspc/src/shared /opt/$(FLAVOUR_PATH_PREFIX)dspider/shared-ec))
|
||||
DSPIDER_SHARED_EXE_PREFIX = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspc/src/shared /opt/$(FLAVOUR_PATH_PREFIX)dspider))
|
||||
include $(DSPIDER_SHARED_DIR)/make/public.mk
|
||||
DSPIDER_SHARED_VERSION = $(call version,$(DSPIDER_SHARED_DIR))
|
||||
DSPIDER_SHARED_EC_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspc/src/shared-ec $(CVS_PROJ_DIR)/dspc/src/shared /opt/$(FLAVOUR_PATH_PREFIX)dspider/shared-ec))
|
||||
DSPIDER_SHARED_EC_EXE_PREFIX = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspc/src/shared-ec $(CVS_PROJ_DIR)/dspc/src/shared /opt/$(FLAVOUR_PATH_PREFIX)dspider))
|
||||
include $(DSPIDER_SHARED_EC_DIR)/make/public.mk
|
||||
DSPIDER_SHARED_EC_VERSION = $(call version,$(DSPIDER_SHARED_EC_DIR))
|
||||
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)dspider-shared-ec-run = $(DSPIDER_SHARED_VERSION)
|
||||
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)dspider-shared-ec-devel = $(DSPIDER_SHARED_VERSION)
|
||||
PREREQ_BUILD += ytools
|
||||
INCLUDE += -I$(DSPIDER_SHARED_DIR)/include
|
||||
LIBFLAGS += -L$(DSPIDER_SHARED_EXE_PREFIX)/lib -ldspider-shared-ec
|
||||
EXE_SEARCH_PATH += $(DSPIDER_SHARED_DIR)/bin
|
||||
PREREQ += DSPIDER_SHARED
|
||||
INCLUDE += -I$(DSPIDER_SHARED_EC_DIR)/include
|
||||
LIBFLAGS += -L$(DSPIDER_SHARED_EC_EXE_PREFIX)/lib -ldspider-shared-ec
|
||||
EXE_SEARCH_PATH += $(DSPIDER_SHARED_EC_DIR)/bin
|
||||
PREREQ += DSPIDER_EC_SHARED
|
||||
endif
|
||||
|
||||
ifneq ($(filter feedfs-qt,$(PREREQ_BUILD)),)
|
||||
|
|
@ -1024,13 +1025,24 @@ RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)feedfs-gui-devel = $(FEEDFS_GUI_VE
|
|||
PREREQ_BUILD += feedfs-utils
|
||||
PREREQ_BUILD += feedfs
|
||||
PREREQ_BUILD += ytools
|
||||
PREREQ_BUILD += feedfs-qt
|
||||
INCLUDE += -I$(FEEDFS_GUI_DIR)/include
|
||||
LIBFLAGS += -L$(FEEDFS_GUI_DIR)/lib -lfeedfs-gui
|
||||
EXE_SEARCH_PATH += $(FEEDFS_GUI_DIR)/bin
|
||||
PREREQ += FEEDFS_GUI
|
||||
endif
|
||||
|
||||
ifneq ($(filter feedfs-bz,$(PREREQ_BUILD)),)
|
||||
FEEDFS_BZ_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/feedfs-bz /opt/$(FLAVOUR_PATH_PREFIX)feedfs-bz))
|
||||
FEEDFS_BZ_VERSION = $(call version,$(FEEDFS_BZ_DIR))
|
||||
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)feedfs-bz-run = $(FEEDFS_BZ_VERSION)
|
||||
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)feedfs-bz-devel = $(FEEDFS_BZ_VERSION)
|
||||
PREREQ_BUILD += feedfs-objects
|
||||
INCLUDE += -I$(FEEDFS_BZ_DIR)/include
|
||||
LIBFLAGS += -L$(FEEDFS_BZ_DIR)/lib -lfeedfs-bz
|
||||
EXE_SEARCH_PATH += $(FEEDFS_BZ_DIR)/bin
|
||||
PREREQ += FEEDFS_BZ
|
||||
endif
|
||||
|
||||
ifneq ($(filter feedfsd,$(PREREQ_BUILD)),)
|
||||
FEEDFSD_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/feedfsd /opt/$(FLAVOUR_PATH_PREFIX)feedfsd))
|
||||
FEEDFSD_VERSION = $(call version,$(FEEDFSD_DIR))
|
||||
|
|
@ -1087,6 +1099,20 @@ EXE_SEARCH_PATH += $(FEEDFS_NET_DIR)/bin
|
|||
PREREQ += FEEDFS_NET
|
||||
endif
|
||||
|
||||
ifneq ($(filter feedfs-ini,$(PREREQ_BUILD)),)
|
||||
FEEDFS_INI_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/feedfs-ini /opt/$(FLAVOUR_PATH_PREFIX)feedfs-ini))
|
||||
FEEDFS_INI_VERSION = $(call version,$(FEEDFS_INI_DIR))
|
||||
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)feedfs-ini-run = $(FEEDFS_INI_VERSION)
|
||||
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)feedfs-ini-devel = $(FEEDFS_INI_VERSION)
|
||||
PREREQ_BUILD += feedfs-objects
|
||||
PREREQ_BUILD += feedfs-utils
|
||||
PREREQ_BUILD += ytools
|
||||
INCLUDE += -I$(FEEDFS_INI_DIR)/include
|
||||
LIBFLAGS += -L$(FEEDFS_INI_DIR)/lib -lfeedfs-ini
|
||||
EXE_SEARCH_PATH += $(FEEDFS_INI_DIR)/bin
|
||||
PREREQ += FEEDFS_INI
|
||||
endif
|
||||
|
||||
ifneq ($(filter feedfs-local,$(PREREQ_BUILD)),)
|
||||
FEEDFS_LOCAL_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/feedfs-local /opt/$(FLAVOUR_PATH_PREFIX)feedfs-local))
|
||||
FEEDFS_LOCAL_VERSION = $(call version,$(FEEDFS_LOCAL_DIR))
|
||||
|
|
@ -1253,6 +1279,44 @@ EXE_SEARCH_PATH += $(ALSART_DIR)/bin
|
|||
PREREQ += ALSART
|
||||
endif
|
||||
|
||||
ifneq ($(filter jackmix,$(PREREQ_BUILD)),)
|
||||
JACKMIX_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspc/src/dspcd-plugins/jackmix /opt/$(FLAVOUR_PATH_PREFIX)dspider/jackmix))
|
||||
JACKMIX_VERSION = $(call version,$(JACKMIX_DIR))
|
||||
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)dspider-jackmix-run = $(JACKMIX_VERSION)
|
||||
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)dspider-jackmix-devel = $(JACKMIX_VERSION)
|
||||
PREREQ_BUILD += ytools btools
|
||||
INCLUDE += -I$(JACKMIX_DIR)/include
|
||||
LIBFLAGS += -L$(JACKMIX_DIR)/lib -ldspider-jackmix
|
||||
LD_LIB_PATH += $(JACKMIX_DIR)/dsplib
|
||||
EXE_SEARCH_PATH += $(JACKMIX_DIR)/bin
|
||||
PREREQ += JACKMIX
|
||||
endif
|
||||
|
||||
ifneq ($(filter scmjm,$(PREREQ_BUILD)),)
|
||||
SCMJM_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspc/src/dspcd-plugins/scmjm /opt/$(FLAVOUR_PATH_PREFIX)dspider/scmjm))
|
||||
SCMJM_VERSION = $(call version,$(SCMJM_DIR))
|
||||
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)dspider-scmjm-run = $(SCMJM_VERSION)
|
||||
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)dspider-scmjm-devel = $(SCMJM_VERSION)
|
||||
PREREQ_BUILD += ytools
|
||||
INCLUDE += -I$(SCMJM_DIR)/include
|
||||
LIBFLAGS += -L$(SCMJM_DIR)/lib -ldspider-scmjm
|
||||
LD_LIB_PATH += $(SCMJM_DIR)/dsplib
|
||||
EXE_SEARCH_PATH += $(SCMJM_DIR)/bin
|
||||
PREREQ += SCMJM
|
||||
endif
|
||||
|
||||
ifneq ($(filter scm,$(PREREQ_BUILD)),)
|
||||
SCM_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspc/src/dspcd-plugins/scm /opt/$(FLAVOUR_PATH_PREFIX)dspider/scm))
|
||||
SCM_VERSION = $(call version,$(SCM_DIR))
|
||||
RPM_REQUIRES_RUN += $(FLAVOUR_PREFIX)dspider-scm-run = $(SCM_VERSION)
|
||||
RPM_REQUIRES_DEVEL += $(FLAVOUR_PREFIX)dspider-scm-devel = $(SCM_VERSION)
|
||||
PREREQ_BUILD += ytools
|
||||
INCLUDE += -I$(SCM_DIR)/include
|
||||
LIBFLAGS += -L$(SCM_DIR)/lib -ldspider-scm
|
||||
EXE_SEARCH_PATH += $(SCM_DIR)/bin
|
||||
PREREQ += SCM
|
||||
endif
|
||||
|
||||
ifneq ($(filter dspfs,$(PREREQ_BUILD)),)
|
||||
DSPFS_DIR = $(firstword $(wildcard $(CVS_PROJ_DIR)/dspfs /opt/$(FLAVOUR_PATH_PREFIX)dspfs))
|
||||
DSPFS_VERSION = $(call version,$(DSPFS_DIR))
|
||||
|
|
@ -1369,8 +1433,12 @@ LIBFLAGS += -L$(SCOPE_CASMIX_DIR)/lib -lscope-casmix
|
|||
EXE_SEARCH_PATH += $(SCOPE_CASMIX_DIR)/bin
|
||||
endif
|
||||
|
||||
PREREQ_INSTALL ?= $(PREREQ_BUILD)
|
||||
PREREQ_RUN ?= $(PREREQ_INSTALL)
|
||||
#PREREQ_INSTALL ?= $(PREREQ_BUILD)
|
||||
#PREREQ_RUN ?= $(PREREQ_INSTALL)
|
||||
|
||||
# TODO: remove this
|
||||
PREREQ_BUILD += $(PREREQ_RUN)
|
||||
PREREQ_BUILD += $(PREREQ_INSTALL)
|
||||
|
||||
ifeq ($(USE_SNDFILE),true)
|
||||
LIBFLAGS += -lsndfile
|
||||
|
|
|
|||
10
make/dirs.mk
10
make/dirs.mk
|
|
@ -26,7 +26,9 @@ else
|
|||
SUBDIR_TARGETS = $(filter all install clean distclean,$(MAKECMDGOALS))
|
||||
endif
|
||||
|
||||
ifneq ($(DONT_CHECK_PREREQ_DONE),true)
|
||||
PREREQ_DIRS_DONE = $(addsuffix /dirs-all.done,$(filter-out $(TOPDIR) /opt/%,$(foreach p,$(PREREQ),$($(p)_DIR))))
|
||||
endif
|
||||
|
||||
all: dirs-all.done
|
||||
install: dirs-install.done
|
||||
|
|
@ -40,20 +42,24 @@ distclean: dirs.clean dirs.distclean
|
|||
# explicit duplication of pattern-rule is needed, otherwise .PHONY: dirs-all.done won't match
|
||||
dirs-all.done:
|
||||
set -e; for d in $(SUBDIRS) ; do make -wC $$d $*; done
|
||||
ifneq ($(DONT_CHECK_PREREQ_DONE),true)
|
||||
touch $@
|
||||
endif
|
||||
|
||||
dirs-%.done:
|
||||
set -e; for d in $(SUBDIRS) ; do make -wC $$d $*; done
|
||||
ifneq ($(DONT_CHECK_PREREQ_DONE),true)
|
||||
touch $@
|
||||
endif
|
||||
|
||||
ifeq ($(DEVELOPMENT),true)
|
||||
|
||||
dirs-all.done: $(wildcard $(BUILD_HDRDIR))
|
||||
|
||||
ifeq ($(MAKECMDGOALS),all)
|
||||
ifeq ($(SUBDIR_TARGETS),all)
|
||||
dirs-all.done: $(PREREQ_DIRS_DONE)
|
||||
endif
|
||||
ifeq ($(MAKECMDGOALS),install)
|
||||
ifeq ($(SUBDIR_TARGETS),install)
|
||||
dirs-all.done: $(PREREQ_DIRS_DONE)
|
||||
endif
|
||||
|
||||
|
|
|
|||
|
|
@ -165,6 +165,9 @@ echo-prereq:
|
|||
|
||||
echo-contrib:
|
||||
|
||||
echo-echo:
|
||||
sed '/echo-[a-z]\+:$$/ !d; s/:$$//' $(MODDIR)/make/rules.mk
|
||||
|
||||
trace-marks:
|
||||
for f in $(ALL_CPP); do \
|
||||
$(SED) 's/^{$$/{_/' $$f > $$f.rep ;\
|
||||
|
|
@ -214,7 +217,7 @@ $(SO_PREFIX)%.so: %.o
|
|||
endif
|
||||
|
||||
$(VERSION_SCRIPT):
|
||||
$(MOD_SCRIPT_DIR)/make_version_script.sh $(BINARY_VERSION) > $@
|
||||
sh $(MOD_SCRIPT_DIR)/make_version_script.sh $(BINARY_VERSION) > $@
|
||||
|
||||
ifneq ($(TARGET),mingw)
|
||||
$(LIB_SO): $(VERSION_SCRIPT) $(LIB_A) $(TOPDIR)/dir_build_LIB.done
|
||||
|
|
|
|||
16
make/run.mk
16
make/run.mk
|
|
@ -91,6 +91,22 @@ callgrind:
|
|||
rm -f $(CORE)
|
||||
valgrind --tool=callgrind $(VALGRIND_OPTS) $(EXE_PATH) $(EXE_ARGS)
|
||||
|
||||
callgrind-noinst:
|
||||
rm -f $(CORE)
|
||||
valgrind --tool=callgrind $(VALGRIND_OPTS) --instr-atstart=no $(EXE_PATH) $(EXE_ARGS)
|
||||
|
||||
callgrind-startinst:
|
||||
ps aux | grep callgrind | grep -v "grep\|make\|callgrind_control" | awk '{print $$2}' | xargs callgrind_control --instr=on
|
||||
|
||||
callgrind-stopinst:
|
||||
ps aux | grep callgrind | grep -v "grep\|make\|callgrind_control" | awk '{print $$2}' | xargs callgrind_control --instr=off
|
||||
|
||||
callgrind-dump:
|
||||
ps aux | grep callgrind | grep -v "grep\|make\|callgrind_control" | awk '{print $$2}' | xargs callgrind_control --dump
|
||||
|
||||
snap:
|
||||
killall -SIGUSR1 $(notdir $(EXE_PATH))
|
||||
|
||||
endif
|
||||
|
||||
stop:
|
||||
|
|
|
|||
|
|
@ -3,24 +3,31 @@
|
|||
# contact@jannet.de
|
||||
# $Id$
|
||||
|
||||
all: all.link
|
||||
|
||||
include $(MODDIR)/make/rules.mk
|
||||
|
||||
ifneq ($(strip $(SRC_ALL_CPP)),)
|
||||
|
||||
# mandatory targets
|
||||
all: all.link
|
||||
install: $(ALL)
|
||||
|
||||
# convenience targets
|
||||
link: all.link
|
||||
clean-link: clean.link
|
||||
|
||||
# rules
|
||||
all.link: $(PROJECT)
|
||||
|
||||
$(PROJECT):
|
||||
ln -s . $@
|
||||
|
||||
ifeq ($(SCOPE_PREFIX),)
|
||||
all.link: $(BUILD_HDRDIR)/$(PROJECT)
|
||||
|
||||
$(BUILD_HDRDIR)/$(PROJECT):
|
||||
cd $(BUILD_HDRDIR) && ln -s . $(PROJECT)
|
||||
endif
|
||||
|
||||
$(LIB_SO): $(OBJ)
|
||||
|
||||
all.done: $(PREREQ_DONE) $(BUILD_HDR) $(BUILD_EXE_SH) $(MEMBERS) $(LIB_A) $(LIB_SO)
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ do-install-links:
|
|||
}; \
|
||||
done; \
|
||||
|
||||
git-init:
|
||||
git-init-from-cvs:
|
||||
@if [ -e .git ]; then \
|
||||
echo $(TOPDIR)/.git exists, aborting ;\
|
||||
exit 1 ;\
|
||||
|
|
@ -92,6 +92,16 @@ git-init:
|
|||
list-cvs-files.sh -f | xargs git add
|
||||
git commit -m "initial checkin of $(RPM_VERSION)"
|
||||
|
||||
WHOAMI = $(shell whoami)
|
||||
REMOTE_GIT_DIR = /srv/git/$(WHOAMI)/proj/$(PROJECT)
|
||||
|
||||
git-clone-to-remote:
|
||||
ssh git.jannet.de "/opt/ytools/bin/git-srv-admin.sh create-personal-project $(PROJECT)"
|
||||
git remote add origin ssh://$(WHOAMI)@git.jannet.de$(REMOTE_GIT_DIR)
|
||||
git config --global user.name $(FULL_NAME)
|
||||
git config --global user.email $(WHOAMI)@jannet.de
|
||||
git push --all origin
|
||||
|
||||
projects-%:
|
||||
python $(MOD_SCRIPT_DIR)/build.py $* $(PROJECT)
|
||||
|
||||
|
|
|
|||
|
|
@ -16,8 +16,7 @@ dep_tree = {}
|
|||
glob_order = []
|
||||
proj_base=pwd.getpwuid(os.getuid()).pw_dir + "/local/src/cvs.stable/proj"
|
||||
search_path=[".", "dspc/src", "dspc/src/dspcd-plugins", "dspc/src/io" ]
|
||||
#glob_prereq_type="BUILD"
|
||||
glob_prereq_type="RUN"
|
||||
glob_prereq_type="BUILD"
|
||||
|
||||
def find_proj_path(name):
|
||||
name=name.replace("dspider-", "")
|
||||
|
|
@ -31,6 +30,9 @@ def read_deps(cur, prereq_type):
|
|||
path = find_proj_path(cur)
|
||||
os.chdir(path)
|
||||
p = subprocess.Popen("LD_LIBRARY_PATH= make echo-prereq | sed '/PREREQ_" + prereq_type + " *=/ !d; s/.*=//'", shell=True, stdout=subprocess.PIPE)
|
||||
p.wait()
|
||||
if p.returncode: # FIXME: doesn't work, because sed kills make's return code
|
||||
raise Exception("failed to get " + prereq_type + " prerequisites from " + path)
|
||||
r = Set()
|
||||
for d in p.stdout.read().split():
|
||||
r.add(d)
|
||||
|
|
|
|||
102
scripts/git-srv-admin.sh
Normal file
102
scripts/git-srv-admin.sh
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
#!/bin/sh
|
||||
|
||||
myname=`basename $0`
|
||||
|
||||
usage()
|
||||
{
|
||||
cat << EOT | sed 's/^ |//'
|
||||
|
|
||||
| $myname cmd [cmd-arguments] ...
|
||||
|
|
||||
| commands are:
|
||||
|
|
||||
| create-personal-project name
|
||||
| list-personal-projects
|
||||
|
|
||||
EOT
|
||||
[ "$1" ] && exit $1
|
||||
}
|
||||
|
||||
log()
|
||||
{
|
||||
echo $@
|
||||
}
|
||||
|
||||
err()
|
||||
{
|
||||
echo $@ >&2
|
||||
}
|
||||
|
||||
fatal()
|
||||
{
|
||||
err $@
|
||||
exit 1
|
||||
}
|
||||
|
||||
md()
|
||||
{
|
||||
local dir=$1
|
||||
local mode=$2
|
||||
local owner=$3
|
||||
local group=$4
|
||||
|
||||
[ -d $dir ] || {
|
||||
|
||||
log "creating $dir as $owner.$group with mode $mode"
|
||||
/usr/bin/install -m $mode -o $owner -g $group -d $dir || {
|
||||
fatal "failed to create directory $dir"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ----------------- commands
|
||||
create_personal_project()
|
||||
{
|
||||
[ -e $dir ] && fatal "$dir already exists"
|
||||
|
||||
if [ "$UID" = 0 ]; then
|
||||
md /srv/git 750 root jannet
|
||||
md /srv/git/$id 750 root jannet
|
||||
md /srv/git/$id/proj 750 root jannet
|
||||
md /srv/git/$id/proj/$p 770 root $id
|
||||
exit 0
|
||||
fi
|
||||
|
||||
/usr/bin/sudo $0 create-personal-project $p || fatal "failed to set root uid"
|
||||
cd $dir || fatal "failed to change to $dir"
|
||||
git init --bare || fatal "git init failed"
|
||||
}
|
||||
|
||||
list_personal_projects()
|
||||
{
|
||||
cd $pdir
|
||||
ls */HEAD | sed 's%/HEAD%%' 2>/dev/null
|
||||
}
|
||||
|
||||
# ----------------- here we go
|
||||
cmd=$1
|
||||
shift
|
||||
|
||||
id=`whoami`
|
||||
[ "$SUDO_UID" ] && {
|
||||
id=`/opt/ytools/bin/getpwuid $SUDO_UID | sed '/^name *=/ !d; s/^name *= *//'`
|
||||
[ "$id" ] || fatal "failed to find uid $SUDO_UID in user database"
|
||||
}
|
||||
|
||||
p=$1
|
||||
pdir=/srv/git/$id/proj
|
||||
dir=$pdir/$p
|
||||
|
||||
case $cmd in
|
||||
create-personal-project)
|
||||
create_personal_project "$@"
|
||||
exit 1
|
||||
;;
|
||||
list-personal-projects)
|
||||
list_personal_projects "$@"
|
||||
;;
|
||||
*)
|
||||
usage 1
|
||||
;;
|
||||
esac
|
||||
|
||||
100
scripts/pgit.sh
Normal file
100
scripts/pgit.sh
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
#!/bin/sh
|
||||
|
||||
log()
|
||||
{
|
||||
echo $@
|
||||
}
|
||||
|
||||
err()
|
||||
{
|
||||
log $@
|
||||
}
|
||||
|
||||
fatal()
|
||||
{
|
||||
err $@
|
||||
exit 1
|
||||
}
|
||||
|
||||
marker()
|
||||
{
|
||||
log "# ============= $@"
|
||||
}
|
||||
|
||||
config()
|
||||
{
|
||||
pdir=`pwd`
|
||||
while [ `basename $pdir` != proj ]; do
|
||||
[ "$pdir" = / ] && fatal "didn't find \"proj\" in directory components"
|
||||
pdir=`dirname $pdir`
|
||||
done
|
||||
pdirs=`(cd $pdir; ls -d */.git | sed 's%/.git%%')`
|
||||
}
|
||||
|
||||
# ------------- commands
|
||||
clone()
|
||||
{(
|
||||
local p
|
||||
config
|
||||
cd $pdir
|
||||
local id=`whoami`
|
||||
local projects=`ssh git.jannet.de /opt/ytools/bin/git-srv-admin.sh list-personal-projects`
|
||||
for p in $projects; do
|
||||
[ -d $p ] && {
|
||||
marker "skipping existing $p"
|
||||
continue
|
||||
}
|
||||
marker "cloning $p"
|
||||
git clone ssh://$id@git.jannet.de/srv/git/$id/proj/$p
|
||||
done
|
||||
)}
|
||||
|
||||
pull()
|
||||
{(
|
||||
local d
|
||||
config
|
||||
cd $pdir
|
||||
for d in $pdirs; do
|
||||
marker "$d"
|
||||
($d; git pull origin master)
|
||||
done
|
||||
)}
|
||||
|
||||
diff()
|
||||
{(
|
||||
local d
|
||||
config
|
||||
cd $pdir
|
||||
for d in $pdirs; do
|
||||
marker $d
|
||||
(cd $d; git diff --src-prefix=a/$d/ --dst-prefix=b/$d/ "$@")
|
||||
done
|
||||
)}
|
||||
|
||||
commit()
|
||||
{(
|
||||
local d
|
||||
config
|
||||
cd $pdir
|
||||
|
||||
for d in $pdirs; do
|
||||
marker $d
|
||||
(cd $d; git commit "$@")
|
||||
done
|
||||
)}
|
||||
|
||||
push()
|
||||
{(
|
||||
local d
|
||||
config
|
||||
cd $pdir
|
||||
for d in $pdirs; do
|
||||
marker $d
|
||||
(cd $d; git push origin master)
|
||||
done
|
||||
)}
|
||||
|
||||
cmd=$1
|
||||
shift
|
||||
$cmd "$@"
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue