create.sh revision 8bdb629053c6752f21668f2af5f336109439b15b
0ca9a2c194523c517c3aafe5758e217ac88d6baaLubos Kosco# CDDL HEADER START
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# The contents of this file are subject to the terms of the
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal# Common Development and Distribution License (the "License").
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Kosco# You may not use this file except in compliance with the License.
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# See LICENSE.txt included in this distribution for the specific
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray# language governing permissions and limitations under the License.
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Kosco# When distributing Covered Code, include this CDDL HEADER in each
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# If applicable, add the following below this CDDL HEADER, with the
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# fields enclosed by brackets "[]" replaced with your own identifying
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray# information: Portions Copyright [yyyy] [name of copyright owner]
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# CDDL HEADER END
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray echo "Usage: $0 -v <version>"
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray echo "Usage: $0 -v <version>"
9dc24f2da404ab474e38fc4d428e5717dc9bcee4Vladimir Kotal echo "Cannot identify the version"
9dc24f2da404ab474e38fc4d428e5717dc9bcee4Vladimir Kotal# Transform OpenGrok version to the IPS version standard
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal# As following:
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal# 0.12 ~ 0.12.0.1.0
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal# 0.<n> ~ 0.<n>.0.1.0
6ce0623fa4ef95af9d77700a1c9c19ec1a919326Guillaume Smet# 0.12-rc1 ~ 0.12.0.0.1
56c25decc0427c204cd35856e521ddf28337e75dLubos Kosco# 0.12-rc<i> ~ 0.12.0.0.<i>
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal# Note that the release candidate must follow imediately after the basic version number (0.12)
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal# 0.12.1 ~ 0.12.1.0.0
83439b4ed8fe40097dc3f2c05168d26bd7926159Vladimir Kotal# 0.12.<j> ~ 0.12.<j>.0.0
3ba66fbb56ef22f183da783a1b2718280c357a4eStanislav Kozina# 0.12.0.1 ~ 0.12.0.1.1
3ba66fbb56ef22f183da783a1b2718280c357a4eStanislav Kozina# 0.12.0.<k> ~ 0.12.0.1.<k>
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Kosco# This is done due to IPS restriction on the version's names
983523cf73bc85cce6282cb5aa78b60f6bcd959fLubos Kosco# This also keep the order of picking the versions from repository
9132ad6a7ba5525fd1a6ccd4f4bcb497385c8597ralphmayrversion=$(echo "$human_readable_version" | nawk -F"." '
9132ad6a7ba5525fd1a6ccd4f4bcb497385c8597ralphmayrfunction parse ( version )
9132ad6a7ba5525fd1a6ccd4f4bcb497385c8597ralphmayr if ( version ~ /^[0-9]+\.[0-9]+-rc[0-9]+/ )
c577d2f6c082eaff9af5bc997d12f3d3bcef537cPeter Bray ret = $1".0.0."$2;
425278cfacbc73f1e955ab6016f206fc5ed93ccbVladimir Kotal else if ( version ~ /^[0-9]+\.[0-9]+$/ )
cd348e325366620fe047edcc849e3c9424828599Peter Bray return version".0.1.0";
cd348e325366620fe047edcc849e3c9424828599Peter Bray else if ( version ~ /^[0-9]+\.[0-9]+\.[0-9]+$/ )
6c8465e3b4611cb632cba9b0572e3e3737c8c341Vladimir Kotal if ( $3 == "0" )
43dac746513591adbd09bc4f417feb385f4fd87eVladimir Kotal return version"."ret".0";
3a4816d2417e1abe89a913616de36f200793bea3Vladimir Kotal else if ( version ~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/ )
527d116ec0f031818982101f4475298b930d515bVladimir Kotal for ( i = 2; i < 4; i ++ )
fbf97ea1786d1e25add88bbfb91810170473bc9fLubos Kosco ret = ret"."$i;
fbf97ea1786d1e25add88bbfb91810170473bc9fLubos Kosco return ret".1."$NF;
fbf97ea1786d1e25add88bbfb91810170473bc9fLubos Kosco else if ( version ~ /rc/ )
cd348e325366620fe047edcc849e3c9424828599Peter Bray return version;
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotal print parse($0);
c276b1ec9722ee95a86a4a381b39c5f405fc1cc4Vladimir Kotalif [ $? != 0 ]
2cf31ec93bd5d8a2efeab511ce051da51e69aedaLubos Kosco echo "Command failed: nawk ..."
5a0ed1213a40c9ab7c990b442b77455ee27bc799Vladimir Kotal echo "Not supported naming scheme $version"
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# create local repo
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Brayif [ $? != 0 ]
cd348e325366620fe047edcc849e3c9424828599Peter Bray if [ $? != 0 ]
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter BrayPKG pkgrepo -s "$PKG_REPO_NAME" set publisher/prefix=${PKG_PUBLISHER}
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Brayif [ $? != 0 ]
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray echo "Fatal: could not open ${PKG_NAME}@${version}"
5e6c91d7e77062129cd0b6ac8aaa546dff216419Lubos Koscofor dir in /etc/opengrok /usr/opengrok /usr/opengrok/man /usr/opengrok/man/man1\
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray PKG pkgsend add dir mode=0755 owner=root group=sys path=${dir}
cd348e325366620fe047edcc849e3c9424828599Peter Bray PKG pkgsend add dir mode=0755 owner=root group=bin path=${dir}
cd348e325366620fe047edcc849e3c9424828599Peter Brayfor dir in /var/opengrok /var/opengrok/data /var/opengrok/etc \
0b2998be561e7bf5e3479d686a5af36f712b0d9aVladimir Kotal PKG pkgsend add dir mode=0755 owner=webservd group=webservd path=${dir}
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayPKG pkgsend add link path=/usr/opengrok/lib/lib target=../lib
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayPKG pkgsend add file platform/solaris/smf/opengrok.xml mode=0444 owner=root group=sys path=/var/svc/manifest/application/opengrok.xml restart_fmri=svc:/system/manifest-import:default
cd348e325366620fe047edcc849e3c9424828599Peter BrayPKG pkgsend add file platform/solaris/smf/svc-opengrok mode=0555 owner=root group=bin path=/lib/svc/method/svc-opengrok
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayPKG pkgsend add file platform/solaris/smf/ogindexd mode=0555 owner=root group=bin path=/usr/opengrok/lib/ogindexd
cd348e325366620fe047edcc849e3c9424828599Peter BrayPKG pkgsend add file OpenGrok mode=0555 owner=root group=bin path=/usr/opengrok/bin/OpenGrok
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos KoscoPKG pkgsend add file dist/opengrok.jar mode=0444 owner=root group=bin path=/usr/opengrok/lib/opengrok.jar
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos KoscoPKG pkgsend add file logging.properties mode=0444 owner=root group=sys path=/usr/opengrok/doc/logging.properties
d7c1415de39f4b07c85828f49cd1ee7a2a19eb9eLubos KoscoPKG pkgsend add file README.txt mode=0444 owner=root group=sys path=/usr/opengrok/doc/README.txt
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos KoscoPKG pkgsend add file CHANGES.txt mode=0444 owner=root group=sys path=/usr/opengrok/doc/CHANGES.txt
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos KoscoPKG pkgsend add file LICENSE.txt mode=0444 owner=root group=sys path=/usr/opengrok/doc/LICENSE.txt
c842732324ee4c74ede17887ad1f0dcdc4364a2cLubos KoscoPKG pkgsend add file NOTICE.txt mode=0444 owner=root group=sys path=/usr/opengrok/doc/NOTICE.txt
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter BrayPKG pkgsend add file doc/EXAMPLE.txt mode=0444 owner=root group=sys path=/usr/opengrok/doc/EXAMPLE.txt
bc5565fc58603964988b42b6aee40e246f35d94fVladimir KotalPKG pkgsend add file doc/ctags.config mode=0444 owner=root group=sys path=/usr/opengrok/doc/ctags.config
bc5565fc58603964988b42b6aee40e246f35d94fVladimir Kotal# install libs
bc5565fc58603964988b42b6aee40e246f35d94fVladimir Kotal lucene-analyzers-common-${LV}.jar lucene-core-${LV}.jar lucene-queryparser-${LV}.jar lucene-suggest-${LV}.jar \
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Bray PKG pkgsend add file dist/lib/${file} mode=0444 owner=root group=bin path=/usr/opengrok/lib/${file}
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# install man page
d2a02e104622a26dd90fa88f4f17188f2039809fPeter BrayPKG pkgsend add file dist/opengrok.1 mode=0444 owner=root group=bin path=/usr/opengrok/man/man1/opengrok.1
d2a02e104622a26dd90fa88f4f17188f2039809fPeter Bray# install default configuration
cd348e325366620fe047edcc849e3c9424828599Peter BrayPKG pkgsend add depend fmri=pkg:/runtime/java type=require
cd348e325366620fe047edcc849e3c9424828599Peter BrayPKG pkgsend add depend fmri=pkg:/web/java-servlet/tomcat type=require
cd348e325366620fe047edcc849e3c9424828599Peter Bray# Following line gets commented by that the developer/tool/exuberant-ctags has been removed from IPS
d961aa46ea0d50fed47802497e45226b1965b12dVladimir Kotal# This has to stay commented until the next release of Solaris will contain the exhuberant ctags package
e9dbb478e3339d96ce4f0af5c6ab7e1d35ebb86dVladimir Kotal#PKG pkgsend add depend fmri=pkg:/developer/tool/exuberant-ctags type=require
d961aa46ea0d50fed47802497e45226b1965b12dVladimir KotalPKG pkgsend add file dist/source.war mode=0444 owner=webservd group=webservd path=/var/tomcat6/webapps/source.war
d961aa46ea0d50fed47802497e45226b1965b12dVladimir KotalPKG pkgsend add set name=description value="OpenGrok - wicked fast source browser"
d961aa46ea0d50fed47802497e45226b1965b12dVladimir KotalPKG pkgsend add set name=pkg.human-version value="${human_readable_version}"
cd348e325366620fe047edcc849e3c9424828599Peter Bray# checks whether the same file exists and updates it
cd348e325366620fe047edcc849e3c9424828599Peter Brayif [ -f "${PKG_NAME}-${human_readable_version}.p5p" ]
4f3c0816485669143aa54f1c6461fcb47cf5bc5cVladimir KotalPKG pkgrecv -s "$PKG_REPO_NAME" -a -d ./dist/${PKG_NAME}-${human_readable_version}.p5p ${PKG_NAME}
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Brayecho "SUCCESSFULLY COMPLETED"
d280c5e286f5b98be13237f52281ae5afdcf51b9Peter Brayecho "OpenGrok has been packaged into $(pwd)/dist/opengrok-${human_readable_version}.p5p"
5762c9f28c2246777be0e9d49cb29d9c0f49146dLubos Koscoecho "For more information about installing OpenGrok visit pkg man page."