$(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:
Jan Lindemann 2012-09-02 16:06:47 +00:00 committed by Jan Lindemann
commit 78bd6215b4
12 changed files with 346 additions and 28 deletions

View file

@ -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
View 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
View 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 "$@"