Skip to main content
summaryrefslogtreecommitdiffstats
blob: 250ace5735492d3c7db8ab1f6e919a6d47bea8e0 (plain) (blame)
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
#!/bin/bash

f=$1
if [[ $f == "" ]]; then
    echo "No input file specified!"
    exit 1
fi
if [[ ! -f $f ]]; then
    echo "Input file $f not found!"
    exit 2
fi

shift
script=$1

if [[ $script == "" ]]; then
    echo "No script specified!"
    exit 3
fi

if [[ ! -f $script ]]; then
    echo "Script $script not found!"
    exit 4
fi

script=`readlink -f $script`

shift
args=$*

set -o nounset
set -o errexit

###########################################################################

file=`readlink -f $f`
echo "Post-processing $file"

tmp=$file-tmp
echo "Product dir: $tmp"

rm -rf $tmp
mkdir $tmp
cd $tmp

if [[ $file == *.tar.gz ]]; then

  tar -xzf $file
  bash $script $file $args

  if [[ $file == *mac64* ]]; then
    echo "  Signing Eclipse Installer.app"
    rm -rf "Eclipse Installer.app/Contents/_CodeSignature"
    chmod -R a-st "Eclipse Installer.app"
    zip -r -q unsigned.zip "Eclipse Installer.app"
    rm -rf "Eclipse Installer.app"
    curl -O https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/releng/org.eclipse.oomph.releng/hudson/installer.entitlements
    curl -o signed.zip -F file=@unsigned.zip -F entitlements=@installer.entitlements http://172.30.206.146:8282/macosx-signing-service/1.0.1-SNAPSHOT
    unzip -qq signed.zip
    rm -f unsigned.zip signed.zip
    chmod -R a-st "Eclipse Installer.app"
    chmod a+x "Eclipse Installer.app/Contents/MacOS/eclipse-inst"
    tar -czf $file-new "Eclipse Installer.app"
  else
    tar -czf $file-new *
  fi

  mv $file-new $file

elif [[ $file == *.exe ]]; then

  concatdir=`mktemp -d`
  echo "Concat dir: $concatdir"

  extractorlib=/home/data/httpd/download.eclipse.org/oomph/products/latest/repository/plugins/org.eclipse.oomph.extractor.lib_*.jar
  java -cp $extractorlib org.eclipse.oomph.extractor.lib.BINExtractor \
    $file \
    $concatdir/product.zip \
    -export \
    $concatdir/marker.txt \
    $concatdir/extractor.exe \
    $concatdir/libdata.jar \
    $concatdir/descriptor.txt

  unzip -qq $concatdir/product.zip
  bash $script $file $args
  zip -r -9 -qq --symlinks $file.zip *

  # Don't use the already signed extractor.exe but rather the one directly from git.
  # Otherwise signing will fail.
  curl -O https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/plugins/org.eclipse.oomph.extractor/extractor-64.exe

  cat extractor-64.exe \
    $concatdir/marker.txt \
    $concatdir/libdata.jar \
    $concatdir/marker.txt \
    $concatdir/descriptor.txt \
    $concatdir/marker.txt \
    $file.zip \
    $concatdir/marker.txt > $file-unsigned

  echo ""
  curl -o $file-new -F filedata=@$file-unsigned http://build.eclipse.org:31338/winsign.php

  actualSize=$(wc -c "$file-new" | cut -f 1 -d ' ')
  if [ $actualSize -lt 40000000 ]; then
    echo "$file-new is just $actualSize bytes large!"
    echo ""
    cat $file-new
    echo ""
    exit 5
  fi

  mv $file-new $file
  rm -rf $concatdir
  rm -rf $file.zip
  rm -rf $file-unsigned

elif [[ $file == *.zip ]]; then

  unzip -qq $file
  bash $script $file $args
  zip -r -9 -qq --symlinks $file-new *
  mv $file-new $file

fi

rm -rf $tmp
cd ..
echo ""

Back to the top