summaryrefslogtreecommitdiff
path: root/app/misc
diff options
context:
space:
mode:
Diffstat (limited to 'app/misc')
-rw-r--r--app/misc/build-native.bat22
-rwxr-xr-xapp/misc/build-native.sh54
-rwxr-xr-xapp/misc/fetchtranslations.sh38
-rwxr-xr-xapp/misc/genFAQ.py118
-rwxr-xr-xapp/misc/prepareovpn3.sh3
5 files changed, 235 insertions, 0 deletions
diff --git a/app/misc/build-native.bat b/app/misc/build-native.bat
new file mode 100644
index 00000000..73a19a00
--- /dev/null
+++ b/app/misc/build-native.bat
@@ -0,0 +1,22 @@
+
+@echo on
+echo Currently broken, feel free to fix and send me a patch, see .sh file
+exit 1
+
+call ndk-build APP_API=all -j 8
+
+
+cd libs
+mkdir ..\assets
+mkdir ..\build\
+
+for /D %%f in (*) do (
+ copy %%f\minivpn ..\assets\minivpn.%%f
+ del %%f\libcrypto.so
+ del %%f\libssl.so
+
+ mkdir ..\build\native-libs\%%f\
+ copy %%f\*.so ..\build\native-libs\%%f\
+)
+
+cd ..
diff --git a/app/misc/build-native.sh b/app/misc/build-native.sh
new file mode 100755
index 00000000..f27384cd
--- /dev/null
+++ b/app/misc/build-native.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+# Exit on errors
+set -e
+
+# Generate git config if the openvpn directory is checked out from git
+if [ -d openvpn/.git ]; then
+ GIT=git
+ cd openvpn
+ CONFIGURE_GIT_CHFILES=$($GIT diff-files --name-status -r --ignore-submodules --quiet -- || echo "+")
+ CONFIGURE_GIT_UNCOMMITTED=$($GIT diff-index --cached --quiet --ignore-submodules HEAD || echo "*")
+ CONFIGURE_GIT_REVISION=$($GIT rev-parse --symbolic-full-name HEAD | cut -d/ -f3)-$($GIT rev-parse --short=16 HEAD)
+ echo "#define CONFIGURE_GIT_REVISION \"${CONFIGURE_GIT_REVISION}\"" > config-version.h.tmp; \
+ echo "#define CONFIGURE_GIT_FLAGS \"${CONFIGURE_GIT_CHFILES}${CONFIGURE_GIT_UNCOMMITTED}\"" >> config-version.h.tmp
+
+ if ! [ -f config-version.h ] || ! cmp -s config-version.h.tmp config-version.h; then \
+ echo "replacing config-version.h"
+ mv config-version.h.tmp config-version.h
+ else
+ rm -f config-version.h.tmp
+ fi
+ cd ..
+fi
+
+if [ "x$1" = "x" ]; then
+ ndk-build APP_API=all -j 8
+else
+ ndk-build $@
+fi
+
+if [ $? = 0 ]; then
+ rm -rf ovpnlibs/
+
+ cd libs
+ mkdir -p ../ovpnlibs/assets
+ for i in *
+ do
+ cp -v $i/nopievpn ../ovpnlibs/assets/nopievpn.$i
+ cp -v $i/pievpn ../ovpnlibs/assets/pievpn.$i
+ done
+ # Removed compiled openssl libs, will use platform so libs
+ # Reduces size of apk
+ #
+ rm -v */libcrypto.so */libssl.so
+
+ for arch in *
+ do
+ builddir=../ovpnlibs/jniLibs/$arch
+ mkdir -p $builddir
+ cp -v $arch/*.so $builddir
+ done
+else
+ exit $?
+fi
diff --git a/app/misc/fetchtranslations.sh b/app/misc/fetchtranslations.sh
new file mode 100755
index 00000000..d92c24b5
--- /dev/null
+++ b/app/misc/fetchtranslations.sh
@@ -0,0 +1,38 @@
+#! /bin/sh
+
+
+if [ "$ICSCROWDAPIKEY" != "" ]
+then
+ echo "Generating new translation archives"
+ fetch -q -1 -o - http://api.crowdin.net/api/project/ics-openvpn/export?key=$ICSCROWDAPIKEY
+fi
+
+echo "Fetch translation archive"
+fetch -q http://crowdin.net/download/project/ics-openvpn.zip
+
+langtoinclude="ca cs de es et fr id it ja ko no nl pl ro ru sv tr uk"
+
+for lang in $langtoinclude
+do
+ tar -xvf ics-openvpn.zip -C src/main res/values-$lang/
+done
+
+# Chinese language require zh-CN and zh-TW
+
+for lang in zh-CN zh-TW id
+do
+ if [ $lang = "zh-CN" ] ; then
+ rlang="zh-rCN"
+ elif [ $lang = "zh-TW" ] ; then
+ rlang="zh-rTW"
+ elif [ $lang = "id" ] ; then
+ rlang="id"
+ fi
+
+ echo "Fetch archive for $lang"
+ fetch http://crowdin.net/download/project/ics-openvpn/$lang.zip
+ tar -xv -C src/main/res/values-$rlang/ --strip-components 3 -f $lang.zip
+ rm $lang.zip
+done
+
+rm -v ics-openvpn.zip
diff --git a/app/misc/genFAQ.py b/app/misc/genFAQ.py
new file mode 100755
index 00000000..b1506420
--- /dev/null
+++ b/app/misc/genFAQ.py
@@ -0,0 +1,118 @@
+#!/usr/bin/env python
+# Quick and dirty script to generate googlecode wiki pages
+
+import codecs
+import xml.dom.minidom as dom
+import os.path
+
+faqpath = "/Users/arne/oss/ics-openvpn.wiki"
+
+header="""
+<wiki:comment>
+This page is autogenerated. Do not edit
+</wiki:comment>
+
+= Frequently aksed questions =
+"""
+
+def getString(strid,lang):
+ ostr=""
+ if strid in strres[lang]:
+ ostr=strres[lang][strid]
+ else:
+ ostr=strres["default"][strid]
+
+ ostr = ostr.replace("&lt;","<")
+ ostr = ostr.replace("&gt;",">")
+ ostr = ostr.replace("\\\"","\"")
+ ostr = ostr.replace("\\'","'")
+ ostr = ostr.replace("\\n","<p>")
+ return ostr
+
+def genPage(faqdom,lang):
+ out =""
+
+ #out+="#summary %s\n" % getString("faq_summary",lang)
+ out+= header
+
+ for xmld in faqdom.firstChild.childNodes:
+ for xmle in xmld.childNodes:
+ if xmle.nodeName == "TextView":
+ style = xmle.getAttribute("style")
+
+ textstyle = None
+ if style == "@style/faqhead":
+ textstyle = "== %s ==\n"
+ elif style == "@style/faqitem":
+ textstyle = "%s\n"
+
+ atext = xmle.getAttribute("android:text")
+ aid = xmle.getAttribute("android:id")
+ if atext:
+ atextid = atext.replace("@string/","")
+ else:
+ atextid = aid.replace("@+id/","")
+
+ out += textstyle % getString(atextid,lang)
+
+ return out
+
+
+strres={}
+
+def loadstrres(filename,lang):
+ xmlstr = dom.parse(filename)
+ strres[lang]={}
+ for xmld in xmlstr.childNodes:
+ for xmle in xmld.childNodes:
+ if xmle.nodeName == "string":
+ strname= xmle.getAttribute("name")
+ strdata = xmle.firstChild.data
+ strres[lang][strname]=strdata
+
+
+def main():
+
+ loadstrres("src/main/res/values/strings.xml","default")
+
+ faqdom = dom.parse("src/main/res/layout/faq.xml")
+ faq= genPage(faqdom,"default")
+
+ open(faqpath + "/FAQ.wiki","w").write(faq)
+
+ for directory in os.listdir("src/main/res"):
+ if directory.startswith("values-") and directory.find("-sw")==-1:
+ lang = directory.split("-",1)[1]
+ print lang
+ loadstrres("src/main/res/values-%s/strings.xml" % lang,lang)
+
+ langdir= "%s/%s" %(faqpath,lang)
+ if lang=="zh-rCN":
+ langdir= "%s/%s" %(faqpath,"zh-Hans")
+ elif lang=="zh-rTW":
+ langdir= "%s/%s" %(faqpath,"zh-Hant")
+
+
+ if not os.path.exists(langdir):
+ os.mkdir(langdir)
+
+ faq= genPage(faqdom,lang)
+ open("%s/FAQ.wiki" % langdir,"w").write(faq.encode("utf-8"))
+
+ checkFormatString(lang)
+
+def checkFormatString(lang):
+ for strid in strres["default"]:
+ ostr = getString(strid,"default")
+ tstr = getString(strid,lang)
+
+
+ for f in ["%s", "%d", "%f"] + ["%%%d$s" % d for d in range(0,10)] + ["%%%d$d" % d for d in range(0,10)]:
+ ino = ostr.find(f)==-1
+ int = tstr.find(f)==-1
+
+ if ino != int:
+ print "Mismatch",strid,f,ostr,tstr
+
+if __name__=="__main__":
+ main()
diff --git a/app/misc/prepareovpn3.sh b/app/misc/prepareovpn3.sh
new file mode 100755
index 00000000..15982727
--- /dev/null
+++ b/app/misc/prepareovpn3.sh
@@ -0,0 +1,3 @@
+export O3=$PWD/openvpn3
+mkdir -p src/ovpn3/java/net/openvpn/ovpn3
+swig -outdir src/ovpn3/java/net/openvpn/ovpn3/ -c++ -java -package net.openvpn.ovpn3 -I$O3/client -I$O3 $O3/javacli/ovpncli.i \ No newline at end of file