File: make-src-tape

package info (click to toggle)
swi-prolog 9.0.4%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 82,408 kB
  • sloc: ansic: 387,503; perl: 359,326; cpp: 6,613; lisp: 6,247; java: 5,540; sh: 3,147; javascript: 2,668; python: 1,900; ruby: 1,594; yacc: 845; makefile: 428; xml: 317; sed: 12; sql: 6
file content (134 lines) | stat: -rwxr-xr-x 3,012 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/bin/bash
#
# Make the SWI-Prolog source archives by running this script. Before
# you start:
#
#	* Update VERSION
#	* Run ./newversion, which creates a GIT tag VN.N.N
#	* Run ./make-src-tape
#
# This script requires GNU-tar!

if [ -x /opt/local/bin/gnutar ]; then
  tar=/opt/local/bin/gnutar
else
  tar=tar
fi

COREMODULES="bench packages/chr packages/clpqr packages/inclpr packages/jpl"
COREMODULES+=" packages/xpce packages/odbc packages/protobufs packages/windows"
COREMODULES+=" packages/sgml packages/clib packages/http packages/plunit"
COREMODULES+=" packages/pldoc packages/RDF packages/semweb packages/ssl"
COREMODULES+=" packages/zlib packages/tipc packages/table packages/ltx2htm"
COREMODULES+=" packages/nlp packages/cpp packages/PDT packages/utf8proc"
COREMODULES+=" packages/archive packages/swipl-win packages/pengines"
COREMODULES+=" packages/cql packages/bdb packages/readline packages/libedit"
COREMODULES+=" packages/pcre packages/yaml packages/paxos packages/redis"
COREMODULES+=" packages/stomp packages/mqi packages/sweep"

if [ -r modules ]; then
  SUBMODULES="`cat modules`"
else
  SUBMODULES="$COREMODULES"
fi

name=swipl
namesep=-
version=`cat VERSION`
compress=gzip
me=`basename $PWD`
quiet=false

TAG="V$version"

usage()
{ cat << _EOM_
Usage: $(basename $0) [option ...]
Options:
  --tag=Tag
    Create archive for the given version
  --version=Version
    Create archive for the given version
  --name=Name [default $name]
    Create archive for the given version
  --sep=Sep [default $namesep]
    Separator between name and version
  --submodule=Module
    Add an additional module (can be repeated)
  --quiet
    Work silently
  --help
    Print this message
_EOM_
}

while [ x"$1" != x"" ]; do
  case "$1" in
      --tag=*)
	  TAG=`echo $1 | sed 's/--[^=]*=//'`
	  shift
	  ;;
      --submodule=*)
	  SUBMODULES+=" $(echo $1 | sed 's/--[^=]*=//')"
	  shift
	  ;;
      --name=*)
	  name=`echo $1 | sed 's/--[^=]*=//'`
	  shift
	  ;;
      --sep=*)
	  namesep=`echo $1 | sed 's/--[^=]*=//'`
	  shift
	  ;;
      --version=*)
	  version=`echo $1 | sed 's/--[^=]*=//'`
	  shift
	  ;;
      --quiet)
	  quiet=true
	  shift
	  ;;
      --help)
	  usage
	  exit 0
	  ;;
      --*)
	  usage
	  exit 1
	  ;;
      *)
  esac
done

if ! git diff --quiet; then
    echo "Fatal: directory is dirty"
    exit 1
fi

prefix=$name$namesep$version
out=$prefix.tar

# core SWI-Prolog snapshot from GIT
git archive --format=tar --prefix=$prefix/ "$TAG" > ../$out

#add the submodules
for sm in `git submodule status $SUBMODULES | awk '{printf "%s:%s\n", $1, $2}'`; do
    sha1=`echo $sm | awk -F: '{print $1}'`
    path=`echo $sm | awk -F: '{print $2}'`
    [ $quiet = true ] || echo -n "adding module $path at $sha1 ... "
    git --git-dir $path/.git archive --format=tar --prefix=$prefix/$path/ $sha1 > tmp.tar
    $tar -Af ../$out tmp.tar
    rm tmp.tar
    [ $quiet = true ] || echo ok
done

cd ..
ln -s $me $prefix

# cleanup
rm $prefix

# compress the result
rm -f $out.gz
$compress $out