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
|
|
@ -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