Repository: bigtop Updated Branches: refs/heads/master 8025d01d3 -> 383993a44
BIGTOP-1569. provide alias targets for building packages native to the OS Project: http://git-wip-us.apache.org/repos/asf/bigtop/repo Commit: http://git-wip-us.apache.org/repos/asf/bigtop/commit/383993a4 Tree: http://git-wip-us.apache.org/repos/asf/bigtop/tree/383993a4 Diff: http://git-wip-us.apache.org/repos/asf/bigtop/diff/383993a4 Branch: refs/heads/master Commit: 383993a449b7f677329f3fb4de989c5a13d56de6 Parents: 8025d01 Author: Roman Shaposhnik <[email protected]> Authored: Thu Dec 11 23:56:41 2014 -0800 Committer: Roman Shaposhnik <[email protected]> Committed: Sat Dec 13 20:23:50 2014 -0800 ---------------------------------------------------------------------- .../org/apache/bigtop/NullOutputStream.groovy | 27 ++++++++++++++++++ .../apache/bigtop/TestNullOutputStream.groovy | 29 ++++++++++++++++++++ packages.gradle | 27 +++++++++++++++++- 3 files changed, 82 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/bigtop/blob/383993a4/buildSrc/src/main/groovy/org/apache/bigtop/NullOutputStream.groovy ---------------------------------------------------------------------- diff --git a/buildSrc/src/main/groovy/org/apache/bigtop/NullOutputStream.groovy b/buildSrc/src/main/groovy/org/apache/bigtop/NullOutputStream.groovy new file mode 100644 index 0000000..0d673bb --- /dev/null +++ b/buildSrc/src/main/groovy/org/apache/bigtop/NullOutputStream.groovy @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.bigtop + +import java.io.OutputStream +import java.io.IOException + +public class NullOutputStream extends OutputStream { + @Override + public void write(int b) throws IOException { + } +} http://git-wip-us.apache.org/repos/asf/bigtop/blob/383993a4/buildSrc/src/test/groovy/org/apache/bigtop/TestNullOutputStream.groovy ---------------------------------------------------------------------- diff --git a/buildSrc/src/test/groovy/org/apache/bigtop/TestNullOutputStream.groovy b/buildSrc/src/test/groovy/org/apache/bigtop/TestNullOutputStream.groovy new file mode 100644 index 0000000..1e90d5f --- /dev/null +++ b/buildSrc/src/test/groovy/org/apache/bigtop/TestNullOutputStream.groovy @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.bigtop + +import org.junit.Assert +import org.junit.Test + +class TestNullOutputStream { + + @Test + void testDevNull () { + new Properties().store(new NullOutputStream(), "stuff"); + } +} http://git-wip-us.apache.org/repos/asf/bigtop/blob/383993a4/packages.gradle ---------------------------------------------------------------------- diff --git a/packages.gradle b/packages.gradle index 95dc375..c9dc7ea 100644 --- a/packages.gradle +++ b/packages.gradle @@ -76,6 +76,21 @@ def getDate() { new Date().format('E, dd MMM yyyy HH:mm:ss Z') } +def nativePackaging = { + def devNull = new org.apache.bigtop.NullOutputStream() + def result = exec { + commandLine "/bin/bash", "-c", + """dpkg-query -S /bin/sh && exit 1 + rpm -qf /bin/sh && exit 2 + exit 0 + """ + ignoreExitValue true + errorOutput devNull + standardOutput devNull + } + [false, "deb", "rpm"][result.getExitValue()] +}.call() + task "packages-help" (description: "All package build related tasks information", group: PACKAGES_GROUP) << { targets.each { target -> println (target + "\n\t[" + tasks.findAll { alltask -> alltask.name.startsWith(target)}*.name.join(", ") + "]") @@ -429,6 +444,16 @@ def genTasks = { target, variable -> } touchTargetFile(BOM_map[variable + '_TARGET_SRPM']) } + if (nativePackaging) { + task "$target-pkg" (dependsOn: "$target-$nativePackaging", + description: "Invoking a native binary packaging target $nativePackaging", + group: PACKAGES_GROUP) << { + } + task "$target-spkg" (dependsOn: "$target-s$nativePackaging", + description: "Invoking a native binary packaging target s$nativePackaging", + group: PACKAGES_GROUP) << { + } + } task "$target-yum" (dependsOn: "$target-rpm", description: "Creating YUM repository for $target packages", group: PACKAGES_GROUP) << { @@ -595,4 +620,4 @@ project.afterEvaluate { group: PACKAGES_GROUP) << { delete (DL_DIR) } -} \ No newline at end of file +}
