From 6bc3e257f80a273d35d07099bd4ed99eb45163bf Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 9 Mar 2020 19:03:06 +0530 Subject: Enable nonnull generation for tunnel module Also cleanup nonnull.gradle while we're at it Signed-off-by: Harsh Shandilya --- app/build.gradle | 2 +- app/nonnull.gradle | 87 ----------------------------------------------------- nonnull.gradle | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++ tunnel/build.gradle | 1 + 4 files changed, 88 insertions(+), 88 deletions(-) delete mode 100644 app/nonnull.gradle create mode 100644 nonnull.gradle diff --git a/app/build.gradle b/app/build.gradle index a21c2027..e4caeb6b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply from: 'nonnull.gradle' +apply from: rootProject.file('nonnull.gradle') // Create a variable called keystorePropertiesFile, and initialize it to your // keystore.properties file, in the rootProject folder. diff --git a/app/nonnull.gradle b/app/nonnull.gradle deleted file mode 100644 index a10c10d2..00000000 --- a/app/nonnull.gradle +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright © 2017-2019 WireGuard LLC. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0 - */ - -task generateNonNullJavaFiles(dependsOn: "assembleDebug", type: Copy) { - group = "Copying" - description = "Generate package-info.java classes" - - def basePackage = "com" + File.separatorChar + "wireguard" - def mainSrcPhrase = "src" + File.separatorChar + "main" + File.separatorChar + - "java" + File.separatorChar - def mainTestSrcPhrase = "src" + File.separatorChar + "test" + File.separatorChar + - "java" + File.separatorChar - def mainAndroidTestSrcPhrase = "src" + File.separatorChar + "androidTest" + File.separatorChar + - "java" + File.separatorChar - - def sourceDir = file( "${projectDir}" + File.separatorChar + "src" + File.separatorChar + - "main" + File.separatorChar + "java" + File.separatorChar + - basePackage ) - def testSourceDir = file( "${projectDir}" + File.separatorChar + "src" + File.separatorChar + - "test" + File.separatorChar + "java" + File.separatorChar + - basePackage) - def androidTestSourceDir = file( "${projectDir}" + File.separatorChar + "src" + File - .separatorChar + - "androidTest" + File.separatorChar + "java" + File.separatorChar + - basePackage ) - - generateInfoFiles(sourceDir, mainSrcPhrase); - sourceDir.eachDirRecurse { dir -> - generateInfoFiles(dir, mainSrcPhrase) - } - if (file(testSourceDir).exists()) { - generateInfoFiles(testSourceDir, mainTestSrcPhrase); - testSourceDir.eachDirRecurse { dir -> - generateInfoFiles(dir, mainTestSrcPhrase) - } - } - if (file(androidTestSourceDir).exists()) { - generateInfoFiles(androidTestSourceDir, mainAndroidTestSrcPhrase); - androidTestSourceDir.eachDirRecurse { dir -> - generateInfoFiles(dir, mainAndroidTestSrcPhrase) - } - } - println "[SUCCESS] NonNull generator: package-info.java files checked" -} - -private void generateInfoFiles(File dir, String mainSrcPhrase) { - def infoFileContentHeader = getFileContentHeader(); - def infoFileContentFooter = getFileContentFooter(); - def infoFilePath = dir.getAbsolutePath() + File.separatorChar + "package-info.java" - - //file(infoFilePath).delete(); //do not use in production code - if (!file(infoFilePath).exists()) { - def infoFileContentPackage = getFileContentPackage(dir.getAbsolutePath(), mainSrcPhrase); - new File(infoFilePath).write(infoFileContentHeader + - infoFileContentPackage + infoFileContentFooter) - println "[dir] " + infoFilePath + " created"; - } -} - -def getFileContentPackage(String path, String mainSrcPhrase) { - def mainSrcPhraseIndex = path.indexOf(mainSrcPhrase) - def output = path.substring(mainSrcPhraseIndex) - - // Win hotfix - if (System.properties['os.name'].toLowerCase().contains('windows')) { - output = output.replace("\\", "/") - mainSrcPhrase = mainSrcPhrase.replace("\\", "/") - } - - return "package " + output.replaceAll(mainSrcPhrase, "").replaceAll( - "/", ".") + ";\n" -} - -def getFileContentHeader() { - return "/**\n" + - " * Make all method parameters @NonNull by default.\n" + - " */\n" + - "@NonNullForAll\n" -} - -def getFileContentFooter() { - return "\n" + - "import com.wireguard.util.NonNullForAll;\n" -} - diff --git a/nonnull.gradle b/nonnull.gradle new file mode 100644 index 00000000..7fc9b25d --- /dev/null +++ b/nonnull.gradle @@ -0,0 +1,86 @@ +/* + * Copyright © 2017-2019 WireGuard LLC. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +task generateNonNullJavaFiles(dependsOn: "assembleDebug", type: Copy) { + group = "Copying" + description = "Generate package-info.java classes" + + def basePackage = "com" + File.separatorChar + "wireguard" + def mainSrcPhrase = "src" + File.separatorChar + "main" + File.separatorChar + + "java" + File.separatorChar + def mainTestSrcPhrase = "src" + File.separatorChar + "test" + File.separatorChar + + "java" + File.separatorChar + def mainAndroidTestSrcPhrase = "src" + File.separatorChar + "androidTest" + File.separatorChar + + "java" + File.separatorChar + + def sourceDir = file( "${projectDir}" + File.separatorChar + "src" + File.separatorChar + + "main" + File.separatorChar + "java" + File.separatorChar + + basePackage ) + def testSourceDir = file( "${projectDir}" + File.separatorChar + "src" + File.separatorChar + + "test" + File.separatorChar + "java" + File.separatorChar + + basePackage) + def androidTestSourceDir = file( "${projectDir}" + File.separatorChar + "src" + File + .separatorChar + + "androidTest" + File.separatorChar + "java" + File.separatorChar + + basePackage ) + + generateInfoFiles(sourceDir, mainSrcPhrase) + sourceDir.eachDirRecurse { dir -> + generateInfoFiles(dir, mainSrcPhrase) + } + if (file(testSourceDir).exists()) { + generateInfoFiles(testSourceDir, mainTestSrcPhrase) + testSourceDir.eachDirRecurse { dir -> + generateInfoFiles(dir, mainTestSrcPhrase) + } + } + if (file(androidTestSourceDir).exists()) { + generateInfoFiles(androidTestSourceDir, mainAndroidTestSrcPhrase) + androidTestSourceDir.eachDirRecurse { dir -> + generateInfoFiles(dir, mainAndroidTestSrcPhrase) + } + } + println "[SUCCESS] NonNull generator: package-info.java files checked" +} + +private void generateInfoFiles(File dir, String mainSrcPhrase) { + def infoFileContentHeader = getFileContentHeader() + def infoFileContentFooter = getFileContentFooter() + def infoFilePath = dir.getAbsolutePath() + File.separatorChar + "package-info.java" + + //file(infoFilePath).delete(); //do not use in production code + if (!file(infoFilePath).exists()) { + def infoFileContentPackage = getFileContentPackage(dir.getAbsolutePath(), mainSrcPhrase) + new File(infoFilePath).write(infoFileContentHeader + + infoFileContentPackage + infoFileContentFooter) + println "[dir] " + infoFilePath + " created" + } +} + +static def getFileContentPackage(String path, String mainSrcPhrase) { + def mainSrcPhraseIndex = path.indexOf(mainSrcPhrase) + def output = path.substring(mainSrcPhraseIndex) + + // Win hotfix + if (System.properties['os.name'].toLowerCase().contains('windows')) { + output = output.replace("\\", "/") + mainSrcPhrase = mainSrcPhrase.replace("\\", "/") + } + + return "package " + output.replaceAll(mainSrcPhrase, "").replaceAll( + "/", ".") + ";\n" +} + +static def getFileContentHeader() { + return "/**\n" + + " * Make all method parameters @NonNull by default.\n" + + " */\n" + + "@NonNullForAll\n" +} + +static def getFileContentFooter() { + return "\n" + + "import com.wireguard.util.NonNullForAll;\n" +} diff --git a/tunnel/build.gradle b/tunnel/build.gradle index 65ac6ceb..984382e1 100644 --- a/tunnel/build.gradle +++ b/tunnel/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.library' +apply from: rootProject.file('nonnull.gradle') android { buildToolsVersion '29.0.3' -- cgit v1.2.3