aboutsummaryrefslogtreecommitdiffstats
path: root/net-mgmt/rackmonkey/Makefile
blob: f3413818ea8858d1c935ad1df472e3d1e1933e91 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# Ports collection makefile for:    RackMonkey
# Date created:             2010-02-10
# Whom:                 Eric F Crist <ecrist@secure-computing.net>
#
# $FreeBSD$
#

PORTNAME=   rackmonkey
PORTVERSION=    1.2.5
PORTREVISION=   2
CATEGORIES= net-mgmt www
MASTER_SITES=   SF \
        ftp://ftp.secure-computing.net/pub/FreeBSD/ports/${PORTNAME}/ \
        ftp://ftp2.secure-computing.net/pub/FreeBSD/ports/${PORTNAME}/
DISTNAME=   ${PORTNAME}-${PORTVERSION}-1

MAINTAINER= ecrist@secure-computing.net
COMMENT=    A web-based tool for managing racks of equipment

RUN_DEPENDS=    p5-DBI>=0:${PORTSDIR}/databases/p5-DBI \
        p5-HTML-Template>=0:${PORTSDIR}/www/p5-HTML-Template \
        p5-Spreadsheet-WriteExcel>=0:${PORTSDIR}/textproc/p5-Spreadsheet-WriteExcel \
        p5-Net-DNS>=0:${PORTSDIR}/dns/p5-Net-DNS \
        p5-HTML-Parser>=0:${PORTSDIR}/www/p5-HTML-Parser

OPTIONS=    \
    SQLITE      "Use SQLite Backend"    on  \
    MYSQL       "Use MySQL Backend"     off \
    POSTGRES    "Use Posgres Backend"   off \
    INIT_DB     "Initialize DB at installation (SQLite Only)"   on  \
    SAMPLE      "Install sample data (SQLite Only)" on

WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}-1
NO_BUILD=   YES

USE_PERL5_RUN=  YES

SUB_FILES=  pkg-message

.include <bsd.port.options.mk>
.if defined(WITH_SQLITE)
USE_SQLITE= yes
RUN_DEPENDS+=   p5-DBD-SQLite>=0:${PORTSDIR}/databases/p5-DBD-SQLite
.endif
.if defined(WITH_MYSQL)
USE_MYSQL=  yes
RUN_DEPENDS+=   p5-DBD-mysql>=0:${PORTSDIR}/databases/p5-DBD-mysql
.endif
.if defined(WITH_POSTGRES)
USE_PGSQL=  83
RUN_DEPENDS+=   p5-DBD-Pg>=0:${PORTSDIR}/databases/p5-DBD-Pg
.endif

.if defined(WITH_INIT_DB)
PLIST_SUB+= INIT_DB=""
.else
PLIST_SUB+= INIT_DB="@comment "
.endif

do-install:
    ${MKDIR} ${WWWDIR}/
    ${INSTALL} ${WRKSRC}/perl/rackmonkey.pl ${WRKSRC}/perl/rack2xls.pl ${WRKSRC}/perl/rackdns.pl ${WWWDIR}/
    cd ${WRKSRC}/www && ${COPYTREE_SHARE} \* ${WWWDIR}/
    cd ${WRKSRC} && ${COPYTREE_SHARE} tmpl ${WWWDIR}/
    cd ${WRKSRC}/perl && ${COPYTREE_SHARE} RackMonkey ${WWWDIR}/
    ${MKDIR} ${WRKDIR}/build_conf; \
    ${CP} ${WRKSRC}/conf/rackmonkey.conf-default ${WRKDIR}/build_conf/rackmonkey.conf; \
    if [ "${WITH_SQLITE}" ]; then \
        ${ECHO} "Building with SQLite............."; \
        ${SED} -i '' -e 's%dbconnect =%dbconnect = dbi:SQLite:dbname=${WWWDIR}/rackmonkey.db%' ${WRKDIR}/build_conf/rackmonkey.conf; \
        if [ "${WITH_INIT_DB}" ]; then \
            if [ -e "${WWWDIR}/rackmonkey.db" ]; then \
                ${ECHO} "Database exists, skipping initalization..."; \
            else \
                ${LOCALBASE}/bin/sqlite3 ${WWWDIR}/rackmonkey.db < ${WRKSRC}/sql/schema/schema.sqlite.sql; \
                ${LOCALBASE}/bin/sqlite3 ${WWWDIR}/rackmonkey.db < ${WRKSRC}/sql/data/default_data.sql; \
                if [ "${WITH_SAMPLE}" ]; then \
                    ${LOCALBASE}/bin/sqlite3 ${WWWDIR}/rackmonkey.db < ${WRKSRC}/sql/data/sample_data.sql; \
                fi \
            fi \
        fi \
    elif [ "${WITH_MYSQL}" -o "${WITH_POSTGRES}" ]; then \
        ${INSTALL} ${WRKSRC}/conf/rackmonkey.conf-default ${WWWDIR}/; \
    fi
    if [ -e "${WWWDIR}/rackmonkey.conf" ]; then \
        ${MV} ${WWWDIR}/rackmonkey.conf ${WWWDIR}/rackmonkey.conf.old; \
    fi
    ${SED} -i '' \
        -e 's/#plugin_xls/plugin_xls/' \
        -e 's/#plugin_dns/plugin_dns/' \
        -e 's%tmplpath =%tmplpath = ${WWWDIR}/tmpl%' \
        -e 's%wwwpath =%wwwpath = /rackmonkey%' \
        ${WRKDIR}/build_conf/rackmonkey.conf
    ${INSTALL} ${WRKDIR}/build_conf/rackmonkey.conf ${WWWDIR}/
    ${INSTALL} ${WRKDIR}/build_conf/rackmonkey.conf ${WWWDIR}/rackmonkey.conf-default
    cd ${WRKSRC} && ${COPYTREE_SHARE} sql ${WWWDIR}/
    cd ${WRKSRC} && ${COPYTREE_SHARE} doc ${WWWDIR}/
    ${CHOWN} -R 80:80 ${WWWDIR}
    ${CAT} ${PKGMESSAGE}

.include <bsd.port.mk>