forked from facebook/react-native
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sync-css-layout.sh
executable file
·91 lines (74 loc) · 3.02 KB
/
sync-css-layout.sh
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
#!/usr/bin/env bash
function usage {
echo "usage: sync-css-layout.sh <pathToGithubRepo> <pathToFbSourceRepo>";
}
function patchfile {
# Add React Native copyright
printf "/**\n" > /tmp/csslayoutsync.tmp
printf " * Copyright (c) 2014-present, Facebook, Inc.\n" >> /tmp/csslayoutsync.tmp
printf " * All rights reserved.\n" >> /tmp/csslayoutsync.tmp
printf " * This source code is licensed under the BSD-style license found in the\n" >> /tmp/csslayoutsync.tmp
printf " * LICENSE file in the root directory of this source tree. An additional grant\n" >> /tmp/csslayoutsync.tmp
printf " * of patent rights can be found in the PATENTS file in the same directory.\n" >> /tmp/csslayoutsync.tmp
printf " */\n\n" >> /tmp/csslayoutsync.tmp
printf "// NOTE: this file is auto-copied from https://github.com/facebook/css-layout\n" >> /tmp/csslayoutsync.tmp
# The following is split over four lines so Phabricator doesn't think this file is generated
printf "// @g" >> /tmp/csslayoutsync.tmp
printf "enerated <<S" >> /tmp/csslayoutsync.tmp
printf "ignedSource::*O*zOeWoEQle#+L" >> /tmp/csslayoutsync.tmp
printf "!plEphiEmie@IsG>>\n\n" >> /tmp/csslayoutsync.tmp
tail -n +9 $1 >> /tmp/csslayoutsync.tmp
mv /tmp/csslayoutsync.tmp $1
$ROOT/fbandroid/scripts/signedsource.py sign $1
}
if [ -z $1 ]; then
usage
exit 1
fi
if [ -z $2 ]; then
usage
exit 1
fi
GITHUB=$1
ROOT=$2
set -e # exit if any command fails
echo "Making github project..."
pushd $GITHUB
COMMIT_ID=$(git rev-parse HEAD)
popd
C_SRC=$GITHUB/src/
JAVA_SRC=$GITHUB/src/java/src/com/facebook/csslayout
TESTS=$GITHUB/src/java/tests/com/facebook/csslayout
FBA_SRC=$ROOT/fbandroid/java/com/facebook/catalyst/js/react-native-github/ReactAndroid/src/main/java/com/facebook/csslayout/
FBA_TESTS=$ROOT/fbandroid/javatests/com/facebook/csslayout/
FBO_SRC=$ROOT/fbobjc/Libraries/FBReactKit/js/react-native-github/React/Layout/
echo "Copying fbandroid src files over..."
cp $JAVA_SRC/*.java $FBA_SRC
echo "Copying fbandroid test files over..."
cp $TESTS/*.java $FBA_TESTS
echo "Copying fbobjc src files over..."
cp $C_SRC/Layout.{c,h} $FBO_SRC
echo "Patching files..."
for sourcefile in $FBA_SRC/*.java; do
patchfile $sourcefile
done
for testfile in $FBA_TESTS/*.java; do
patchfile $testfile
done
for sourcefile in $FBO_SRC/Layout.{c,h}; do
patchfile $sourcefile
done
echo "Writing README"
echo "The source of truth for css-layout is: https://github.com/facebook/css-layout
The code here should be kept in sync with GitHub.
HEAD at the time this code was synced: https://github.com/facebook/css-layout/commit/$COMMIT_ID
There is generated code in:
- README (this file)
- fbandroid/java/com/facebook/csslayout
- fbandroid/javatests/com/facebook/csslayout
- fbobjc/Libraries/FBReactKit/js/react-native-github/React/Layout
The code was generated by running 'make' in the css-layout folder and running:
scripts/sync-css-layout.sh <pathToGithubRepo> <pathToFbSourceRepo>
" > /tmp/csslayoutsync.tmp
cp /tmp/csslayoutsync.tmp "$FBA_SRC/README"
cp /tmp/csslayoutsync.tmp "$FBO_SRC/README"