# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
# $Id: Portfile 52171 2009-06-11 15:36:35Z nox@macports.org $

PortSystem      1.0

name            zsh-devel
set my_name     [strsed ${name} {s/-.*//}]
version         4.3.10
categories      shells
platforms       darwin
maintainers     nox openmaintainer
description     Zsh is a UNIX command interpreter (shell)

long_description \
    Zsh is a UNIX command interpreter (shell) which of the standard shells most resembles the Korn shell \
    (ksh), although it is not completely compatible. It includes enhancements of many types, notably in \
    the command-line editor, options for customising its behaviour, filename globbing, features to make \
    C-shell (csh) users feel more at home and extra features drawn from tcsh (another `custom' shell).

homepage        http://www.zsh.org/
use_bzip2       yes
dist_subdir     ${my_name}
distname        ${my_name}-${version}
master_sites    ${homepage}pub/ \
                ftp://ftp.zsh.org/${my_name} \
                ftp://ftp.sterling.com/${my_name}/ \
                ftp://ftp.rge.com/pub/shells/${my_name}/ \
                ftp://ftp.fu-berlin.de/pub/unix/shells/${my_name}/ \
                ftp://ftp.ips.oz.au/pub/packages/${my_name}/ \
                ftp://ftp.uit.no/pub/unix/shells/${my_name}/ \
                ftp://ftp.iij.ad.jp/pub/misc/${my_name}/ \
                ftp://ftp.icm.edu.pl/vol/wojsyl/${my_name}/ \
                ftp://ftp.sunsite.auc.dk/disk1/${my_name}/ \
                sourceforge:${my_name} \
                http://deb.grml.org/pool/main/z/${my_name}-lovers/:love

# Some love for zsh: http://grml.org/zsh/zsh-lovers.html
set love_distname   zsh-lovers_0.8.3
set love_distfile   ${love_distname}.tar.gz
set worklovedir     zsh-lovers
set worklovepath    ${workpath}/${worklovedir}

checksums        zsh-4.3.10.tar.bz2 \
                    md5     74c5b275544400082a1cde806c98682a \
                    sha1    132f9ce411bf318abccbae9cdc2f8cc14f8be85b \
                    rmd160  fad1412b76d1388d825cb870681c21696fdfa273 \
                zsh-4.3.10-doc.tar.bz2 \
                    md5     c7bbc55d7914d7c3c60329d92396f75f \
                    sha1    e67e10478aa69a9e9cc92986515d337efc30a2bf \
                    rmd160  b56fd30ac63e2d3f2479c7d390ced260cad604f7 \
                zsh-lovers_0.8.3.tar.gz \
                    md5     6604f3bb8a971e66281e1369cc4bd033 \
                    sha1    f4905d8825c982371e72053a58cb9679329249a8 \
                    rmd160  f8482d61d700cc79530b4839de5a86aed6783e99

depends_lib     port:libiconv \
                port:ncursesw \
                port:gdbm

configure.args  --mandir=${prefix}/share/man \
                --infodir=${prefix}/share/info \
                --with-curses-terminfo \
                --enable-multibyte \
                --enable-etcdir=${prefix}/etc

configure.env   DL_EXT=bundle

use_parallel_build  yes

test.run        yes
test.target     check

set docdir      ${prefix}/share/doc/${my_name}-${version}

post-destroot {
    # This manpage only includes every zsh manpage; as manpages are gzipped in MacPorts,
    # .so groff directives will fail.
    system "cd ${destroot}${prefix}/share/man/man1 && \
        soelim -I.. zshall.1 > zshall.1.soelim"
    move -force \
        ${destroot}${prefix}/share/man/man1/zshall.1.soelim \
        ${destroot}${prefix}/share/man/man1/zshall.1

    xinstall -d ${destroot}${docdir}
    xinstall -m 0644 -W ${worksrcpath} ChangeLog FEATURES LICENCE NEWS README ${destroot}${docdir}

    if {[variant_isset doc] || [variant_isset examples]} {
        xinstall -d ${destroot}${docdir}/pdf
    }
}

post-install {
    ui_info "If you want MacPorts' ${my_name} as login shell, you should run:"
    ui_info "% sudo sh -c \"echo '${prefix}/bin/${my_name}' >> /etc/shells\""
    ui_info "% chsh -s ${prefix}/bin/${my_name}"
}

platform darwin 8 {
    post-configure {
        # poll(2) is broken on Darwin 8.
        reinplace "s|#define HAVE_POLL 1|#undef HAVE_POLL|" \
          ${worksrcpath}/config.h
    }
}

variant mp_completion description {Install port(1) completion file} {
    post-destroot {
        set sitedir ${prefix}/share/${my_name}/site-functions
        xinstall -m 0644 ${filespath}/_port \
            ${destroot}${sitedir}
    }
}

variant pcre description {Add regular expressions support in builtin functions through PCRE} {
    configure.args-append   --enable-pcre
    depends_lib-append      port:pcre
}

variant doc description {Install extra documentation} {
    distfiles-append        [suffix ${distname}-doc]

    post-build {
        system "${build.cmd} -C ${worksrcpath}/Doc html info"
    }

    destroot.target-append  install.html \
                            install.info
}

variant examples description {Install configuration examples} {
    distfiles-append    ${love_distfile}:love
    extract.only-delete ${love_distfile}

    post-extract {
        system "tar xzf ${distpath}/${love_distfile} -C ${workpath}"
    }

    post-destroot {
        proc xinstall_dir {dir destdir} {
            xinstall -d ${destdir}

            foreach {file} [glob ${dir}/*] {
                if {[file isdirectory ${file}]} {
                    xinstall_dir ${file} [file join ${destdir} [file tail ${file}]]
                } else {
                    xinstall -m 0644 ${file} ${destdir}
                }
            }
        }

        xinstall -m 0644 ${worklovepath}/refcard.pdf ${destroot}${docdir}/pdf
        xinstall_dir ${worklovepath}/zsh_people ${destroot}${docdir}/examples
    }
}

livecheck.distname  ${my_name}-dev
