# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem                  1.0

name                        OnyX
categories                  sysutils
platforms                   macosx
license                     Restrictive
maintainers                 {@barracuda156 gmail.com:vital.had} openmaintainer
description                 Application which provides a clean interface to many tasks that would otherwise require complex commands to be typed using a command-line interface.
long_description            OnyX is a multifunction utility that you can use to verify the structure of the system files, \
                            run miscellaneous maintenance and cleaning tasks, configure parameters in the Finder, Dock, Safari and some Apple applications, \
                            delete caches, remove certain problematic folders and files, rebuild various databases and indexes, and more.
homepage                    https://www.titanium-software.fr/en/onyx.html

distname                    ${name}

platform darwin 22 {
    version                 4.3.1
    set branch              13
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  0dc4b2c1a086d50a9fa3007f0e1d877d09f5dc3d \
                            sha256  cb140b61272cc453a258119f5b223421dd882abf84bea507832def225cb0c509 \
                            size    4413481
}

platform darwin 21 {
    version                 4.2.5
    set branch              12
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  19b31dd94c62f612c7e85e4081ff43afe621e561 \
                            sha256  2bcf742aed7c19c479f424acbe9bde18d2b7fba6bd57446878f5a91831175579 \
                            size    4705005
}

platform darwin 20 {
    version                 4.0.2
    set branch              11
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  3f0a589d80e6164ad1503465a259782d6fe0c650 \
                            sha256  18659c76972690bb58f1c1b850ae2c6c9991fdeb9c22790daa1b18c9fa74cb8e \
                            size    4880118
}

platform darwin 19 {
    version                 3.8.7
    set branch              1015
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  067522e3d3c742c766dd389d135ab6efec104e88 \
                            sha256  0dd8119ad3441c5130ca584ac90ad450c272aab8b577925561a2536da48d2d54 \
                            size    4709358
}

platform darwin 18 {
    version                 3.6.8
    set branch              1014
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  ab142a2e1f79333163e7ddfd230f812422304640 \
                            sha256  d27529bc497b03c2486fcb8f0d3bfbb4e4a30d4abe25eddcd059ab47aaea6672 \
                            size    5645680
}

platform darwin 17 {
    version                 3.4.9
    set branch              1013
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  4ce770a77489af728cae5b4a0b7cd28b48ea041b \
                            sha256  60e4f56fb2e5457aca1aa1d2a9be95502a310b0de75112e91b7c89bf4a2be829 \
                            size    8285843
}

platform darwin 16 {
    version                 3.3.1
    set branch              1012
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  cdd66b0a7cd3ed5b4d5f081bb1c86310a5936061 \
                            sha256  887272335926005f49bbd35f66eb3ea5a6c19d3a35a8fada68357ab5860a7c1b \
                            size    30842220
}

platform darwin 15 {
    version                 3.1.9
    set branch              1011
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  dbb80753f58b7462279fbd76b55a7cac3405ca84 \
                            sha256  7f8df2c9e97eb465aba88b000fa2f58958421efeba1239303ff0071e9b7b0536 \
                            size    33113762
}

platform darwin 14 {
    version                 3.0.2
    set branch              1010
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  49b7ce77b0b93416122d018e96eae41c2f1ee5cd \
                            sha256  9672a1b300501ec7c726508561c885f2b5e82069ef65145796dc40b0d386a8b0 \
                            size    29611324
}

platform darwin 13 {
    version                 2.8.9
    set branch              109
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  2bfaa49346ad83b786ddff74e49251b5ff102c53 \
                            sha256  01fe01a4e2acdc55383fbe12eea9e2c32659cf1fc283f021987a356bdf820a58 \
                            size    19623822
}

platform darwin 12 {
    version                 2.7.4
    set branch              108
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  12a6c48227933edd690b7928b9fa6a604d8fbafd \
                            sha256  e025125b06fc78322347f8549871c67e570131af83e8bb18b62ed43b65d7369d \
                            size    23378822
}

platform darwin 11 {
    version                 2.4.8
    set branch              107
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  874c9e64bb3953892a4b3c0130907e0624c0960c \
                            sha256  e637359020d3514cf1fe40d1f616692919c41aed926a395bbc7093b256e42e35 \
                            size    20132295
}

platform darwin 10 {
    if {${configure.build_arch} in [list i386 x86_64]} {
        version             2.4.0
        set branch          106
        master_sites        https://www.titanium-software.fr/download/${branch}
        checksums           rmd160  04920b7c6bf0261a95ce9a9c651c82668c99c4e0 \
                            sha256  188c15090988b379dce9f0fafa7b686c6eff2ada147cde150b16e1ae01e4e9e4 \
                            size    21179409
    } elseif {${configure.build_arch} eq "ppc"} {
        # The last version to have ppc slice:
        version             2.2.5
        distname            ${name}-${version}
        distfiles           ${name}-${version}.dmg
        master_sites        https://macintoshgarden.org/sites/macintoshgarden.org/files/apps/ \
                            http://mirror.macintosharchive.org/macintoshgarden.org/files/apps/ \
                            http://old.mac.gdn/apps/
        checksums           rmd160  5cc7ad1a9e044b4f2d324abba0ac99c9cf652aa8 \
                            sha256  4deca74d741839a0b5125935eb5c1a6f5e5c3526a4209732b9041e2cecc21cc5 \
                            size    16572658
    }
}

platform darwin 9 {
    version                 2.0.6
    set branch              105
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  1a3425175afa19cb2b6e3ba44d1572433f0e1e31 \
                            sha256  c1dac8094f384d8e61c251d25181d7a151566cb3f39d28c1f5f6ef005c06cbc8 \
                            size    21425833
}

platform darwin 8 {
    version                 1.8.6
    set branch              104
    master_sites            https://www.titanium-software.fr/download/${branch}
    checksums               rmd160  d3654c95839c7a34fe2eb9745a905f69168d15ba \
                            sha256  c7e26e9a0593a15a287a1f58fae0747d1fede5569a9746378f9149a3426858e8 \
                            size    9478143
}

# use_dmg is broken: https://trac.macports.org/ticket/56457
distfiles                   ${distname}.dmg
extract.only

use_configure               no

build {}

if {${os.major} > 16} {
    extract.mkdir           yes

    post-extract {
        set my_dmg_mount [my_attach_disk_image ${distpath}/${distname}.dmg]
        copy "${my_dmg_mount}/${name}.app" ${worksrcpath}
        my_detach_disk_image ${my_dmg_mount}
    }

    destroot {
        xinstall -d -m 0755 ${destroot}${applications_dir}
        move ${worksrcpath}/${name}.app ${destroot}${applications_dir}
    }

    # Mounts a disk image.
    proc my_attach_disk_image {disk_image} {
        global workpath
        set tmp_disk_image_dir [mkdtemp "${workpath}/.tmp/disk_image.XXXXXXXX"]
        set tmp_disk_image ${tmp_disk_image_dir}/[file tail ${disk_image}].cdr
        set mountpoint [mkdtemp "${workpath}/.tmp/mountpoint.XXXXXXXX"]
        system "hdiutil convert -quiet -ov -format UDTO -o [shellescape ${tmp_disk_image}] [shellescape ${disk_image}]"
        system "hdiutil attach -quiet [shellescape ${tmp_disk_image}] -mountpoint [shellescape ${mountpoint}] -private -nobrowse -noautoopen -noautofsck -noverify -readonly"
        return ${mountpoint}
    }

    # Unmounts a disk image.
    proc my_detach_disk_image {mountpoint} {
        system "hdiutil detach [shellescape ${mountpoint}] -force"
        file delete -force ${mountpoint}
    }

} elseif {${os.major} < 17} {
    post-extract {
        file mkdir /tmp/${name}-${version}
        system "hdiutil attach ${distpath}/${distname}.dmg -private -nobrowse -mountpoint /tmp/${name}-${version}"
    }

    destroot {
        xinstall -d -m 0755 ${destroot}${applications_dir}
        file copy /tmp/${name}-${version}/${name}.app ${destroot}${applications_dir}
    }

    post-destroot {
        system "hdiutil detach /tmp/${name}-${version}"
        file delete -force /tmp/${name}-${version}
    }
}

livecheck.type              none
