Skip to content

Commit 4b7cf20

Browse files
committed
add build info to Makefile
1 parent eb54a74 commit 4b7cf20

File tree

2 files changed

+77
-62
lines changed

2 files changed

+77
-62
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
node_modules
2-
build
2+
build
3+
build-info.json

Makefile

Lines changed: 75 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -12,70 +12,84 @@ help:
1212

1313
all: build ## build all
1414

15-
build: clean ## clean, compile, copy files to build folder
16-
17-
npm install --save node-fetch # install needed node-module
18-
19-
mkdir -p build
20-
mkdir -p build/$(PLUGIN_NAME)
21-
mkdir -p build/$(PLUGIN_NAME)/webfrontend
22-
mkdir -p build/$(PLUGIN_NAME)/updater
23-
mkdir -p build/$(PLUGIN_NAME)/l10n
24-
25-
mkdir -p src/tmp # build code from coffee
26-
cp easydb-library/src/commons.coffee src/tmp
27-
cp src/webfrontend/*.coffee src/tmp
28-
cd src/tmp && coffee -b --compile ${COFFEE_FILES} # bare-parameter is obligatory!
29-
30-
# first: commons! Important
31-
cat src/tmp/commons.js > build/$(PLUGIN_NAME)/webfrontend/customDataTypeLoc.js
32-
33-
cat src/webfrontend/CustomDataTypeLoc.js >> build/$(PLUGIN_NAME)/webfrontend/customDataTypeLoc.js
34-
cat src/webfrontend/CustomDataTypeLocFacet.js >> build/$(PLUGIN_NAME)/webfrontend/customDataTypeLoc.js
35-
cat src/webfrontend/LocUtil.js >> build/$(PLUGIN_NAME)/webfrontend/customDataTypeLoc.js
36-
37-
cp src/updater/LocUpdater.js build/$(PLUGIN_NAME)/updater/LocUpdater.js # build updater
38-
cat src/webfrontend/LocUtil.js >> build/$(PLUGIN_NAME)/updater/LocUpdater.js
39-
cp package.json build/$(PLUGIN_NAME)/package.json
40-
cp -r node_modules build/$(PLUGIN_NAME)/
41-
rm -rf src/tmp # clean tmp
42-
43-
44-
45-
mkdir src/temp_localization
46-
cp l10n/customDataTypeLoc.csv src/temp_localization
47-
cp easydb-library/src/commons.l10n.csv src/temp_localization
48-
49-
# equalize number of columns in localization csv files
50-
@file1=src/temp_localization/customDataTypeLoc.csv \
51-
file2=src/temp_localization/commons.l10n.csv \
52-
cols1=$$(head -n 1 $$file1 | awk -F',' '{print NF}'); \
53-
cols2=$$(head -n 1 $$file2 | awk -F',' '{print NF}'); \
54-
echo "File1 columns: $$cols1, File2 columns: $$cols2"; \
55-
if [ $$cols1 -lt $$cols2 ]; then \
56-
diff=$$((cols2 - cols1)); \
57-
echo "Padding $$file1 with $$diff empty columns..."; \
58-
commas=$$(printf '%.0s,' $$(seq 1 $$diff)); \
59-
sed -i "s/$$/$$commas/" $$file1; \
60-
elif [ $$cols2 -lt $$cols1 ]; then \
61-
diff=$$((cols1 - cols2)); \
62-
echo "Padding $$file2 with $$diff empty columns..."; \
63-
commas=$$(printf '%.0s,' $$(seq 1 $$diff)); \
64-
sed -i "s/$$/$$commas/" $$file2; \
65-
else \
66-
echo "Files already have equal columns."; \
67-
fi
68-
69-
cp src/temp_localization/customDataTypeLoc.csv build/$(PLUGIN_NAME)/l10n/customDataTypeLoc.csv # copy l10n
70-
echo "" >> build/$(PLUGIN_NAME)/l10n/customDataTypeLoc.csv # add line break to make sure csv is not broken after merge
71-
tail -n+2 src/temp_localization/commons.l10n.csv >> build/$(PLUGIN_NAME)/l10n/customDataTypeLoc.csv
72-
rm -rf src/temp_localization
73-
74-
cp src/webfrontend/css/main.css build/$(PLUGIN_NAME)/webfrontend/customDataTypeLoc.css # copy css
75-
cp manifest.master.yml build/$(PLUGIN_NAME)/manifest.yml # copy manifest
15+
build: clean buildinfojson ## clean, compile, copy files to build folder
16+
17+
npm install --save node-fetch # install needed node-module
18+
19+
mkdir -p build
20+
mkdir -p build/$(PLUGIN_NAME)
21+
mkdir -p build/$(PLUGIN_NAME)/webfrontend
22+
mkdir -p build/$(PLUGIN_NAME)/updater
23+
mkdir -p build/$(PLUGIN_NAME)/l10n
24+
25+
cp build-info.json build/$(PLUGIN_NAME)/build-info.json # build-info
26+
27+
mkdir -p src/tmp # build code from coffee
28+
cp easydb-library/src/commons.coffee src/tmp
29+
cp src/webfrontend/*.coffee src/tmp
30+
cd src/tmp && coffee -b --compile ${COFFEE_FILES} # bare-parameter is obligatory!
31+
32+
# first: commons! Important
33+
cat src/tmp/commons.js > build/$(PLUGIN_NAME)/webfrontend/customDataTypeLoc.js
34+
35+
cat src/webfrontend/CustomDataTypeLoc.js >> build/$(PLUGIN_NAME)/webfrontend/customDataTypeLoc.js
36+
cat src/webfrontend/CustomDataTypeLocFacet.js >> build/$(PLUGIN_NAME)/webfrontend/customDataTypeLoc.js
37+
cat src/webfrontend/LocUtil.js >> build/$(PLUGIN_NAME)/webfrontend/customDataTypeLoc.js
38+
39+
cp src/updater/LocUpdater.js build/$(PLUGIN_NAME)/updater/LocUpdater.js # build updater
40+
cat src/webfrontend/LocUtil.js >> build/$(PLUGIN_NAME)/updater/LocUpdater.js
41+
cp package.json build/$(PLUGIN_NAME)/package.json
42+
cp -r node_modules build/$(PLUGIN_NAME)/
43+
rm -rf src/tmp # clean tmp
44+
45+
46+
47+
mkdir src/temp_localization
48+
cp l10n/customDataTypeLoc.csv src/temp_localization
49+
cp easydb-library/src/commons.l10n.csv src/temp_localization
50+
51+
# equalize number of columns in localization csv files
52+
@file1=src/temp_localization/customDataTypeLoc.csv \
53+
file2=src/temp_localization/commons.l10n.csv \
54+
cols1=$$(head -n 1 $$file1 | awk -F',' '{print NF}'); \
55+
cols2=$$(head -n 1 $$file2 | awk -F',' '{print NF}'); \
56+
echo "File1 columns: $$cols1, File2 columns: $$cols2"; \
57+
if [ $$cols1 -lt $$cols2 ]; then \
58+
diff=$$((cols2 - cols1)); \
59+
echo "Padding $$file1 with $$diff empty columns..."; \
60+
commas=$$(printf '%.0s,' $$(seq 1 $$diff)); \
61+
sed -i "s/$$/$$commas/" $$file1; \
62+
elif [ $$cols2 -lt $$cols1 ]; then \
63+
diff=$$((cols1 - cols2)); \
64+
echo "Padding $$file2 with $$diff empty columns..."; \
65+
commas=$$(printf '%.0s,' $$(seq 1 $$diff)); \
66+
sed -i "s/$$/$$commas/" $$file2; \
67+
else \
68+
echo "Files already have equal columns."; \
69+
fi
70+
71+
cp src/temp_localization/customDataTypeLoc.csv build/$(PLUGIN_NAME)/l10n/customDataTypeLoc.csv # copy l10n
72+
echo "" >> build/$(PLUGIN_NAME)/l10n/customDataTypeLoc.csv # add line break to make sure csv is not broken after merge
73+
tail -n+2 src/temp_localization/commons.l10n.csv >> build/$(PLUGIN_NAME)/l10n/customDataTypeLoc.csv
74+
rm -rf src/temp_localization
75+
76+
cp src/webfrontend/css/main.css build/$(PLUGIN_NAME)/webfrontend/customDataTypeLoc.css # copy css
77+
cp manifest.master.yml build/$(PLUGIN_NAME)/manifest.yml # copy manifest
7678

7779
clean: ## clean
7880
rm -rf build
7981

8082
zip: build ## build zip file
8183
cd build && zip ${ZIP_NAME} -r $(PLUGIN_NAME)/
84+
85+
buildinfojson:
86+
repo=`git remote get-url origin | sed -e 's/\.git$$//' -e 's#.*[/\\]##'` ;\
87+
rev=`git show --no-patch --format=%H` ;\
88+
lastchanged=`git show --no-patch --format=%ad --date=format:%Y-%m-%dT%T%z` ;\
89+
builddate=`date +"%Y-%m-%dT%T%z"` ;\
90+
echo '{' > build-info.json ;\
91+
echo ' "repository": "'$$repo'",' >> build-info.json ;\
92+
echo ' "rev": "'$$rev'",' >> build-info.json ;\
93+
echo ' "lastchanged": "'$$lastchanged'",' >> build-info.json ;\
94+
echo ' "builddate": "'$$builddate'"' >> build-info.json ;\
95+
echo '}' >> build-info.json

0 commit comments

Comments
 (0)