diff options
author | Ádler Neves | 2019-05-19 15:38:07 -0300 |
---|---|---|
committer | Ádler Neves | 2019-05-19 15:38:07 -0300 |
commit | f408bce29b8e0afbadad1cc4bfad20510e54df4a (patch) | |
tree | 9354dd1386105d9c72d6b14e4ed5f5319a10de8f /mkPKGBUILD.py | |
parent | 763487c15ae9857761e1ed7bf27dcecb0ed0b0bf (diff) | |
download | aur-f408bce29b8e0afbadad1cc4bfad20510e54df4a.tar.gz |
Version updated
Diffstat (limited to 'mkPKGBUILD.py')
-rwxr-xr-x | mkPKGBUILD.py | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/mkPKGBUILD.py b/mkPKGBUILD.py new file mode 100755 index 000000000000..6a41002c9236 --- /dev/null +++ b/mkPKGBUILD.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python3 +# -*- enconding: utf-8 -*- + +import sys +import json +import subprocess +from pathlib import Path +from urllib.request import urlopen + +BRANCHES = ['alpha', 'beta', 'stable'] + +PKGBUILD_TEMPLATE = r"""# Maintainer: Adler Neves <adlerosn@gmail.com> + +provides=('pathio') +conflicts=('pathio') +_channel={0} +pkgver={1} +pkgname={2} +pkgrel={3} +pkgdesc="A modern slicer for extrusion 3D printing provided by E3D Skunkworks (binary AppImage)." +arch=('x86_64') +makedepends=('elinks') +url="https://pathio.xyz/" +options=('!strip') +license=('custom:Pathio Software License Agreement') +_filename="pathio-$pkgver-$_channel.AppImage" +source=("$_filename::{4}" + license.html::https://docs.pathio.xyz/pathio/latest/legal/termsAndConditions.html + pathio.sh) +sha512sums=('SKIP' + 'SKIP' + 'SKIP') +""" + +PKGBUILD_STATIC_PART = r""" +bluearrow() { + echo -n -e " \e[1m\e[34m->\e[39m\e[0m " + echo $@ +} + +prepare() { + cd "${srcdir}" + + bluearrow Converting license to plain text + cat license.html | xargs echo | sed -re "s/^.*(<article.*?<\/article>).*$/\1/mg" | elinks -dump -dump-width 80 -no-references -no-numbering -force-html > LICENSE + + bluearrow Extracting AppImage + chmod +x ${_filename} + ./${_filename} --appimage-extract &>/dev/null + + bluearrow Creating CLI launcher + sed -i "s/\${_filename}/${_filename}/" "${srcdir}/pathio.sh" + + bluearrow Setting desktop entry to use CLI launcher + sed -i "s/^Exec=.*$/Exec=\/usr\/bin\/pathio %U/" "${srcdir}/squashfs-root/pathio.desktop" +} + +package() { + bluearrow License + install -Dm644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + + bluearrow AppImage + install -D -m 755 "${srcdir}/${_filename}" "${pkgdir}/opt/appimages/${_filename}" + + bluearrow CLI launcher + install -D -m 755 "${srcdir}/pathio.sh" "${pkgdir}/usr/bin/pathio" + + bluearrow Application icon + cp -r --no-preserve=mode,ownership "${srcdir}/squashfs-root/usr/share/icons" "${pkgdir}/usr/share/" + mkdir -p "${pkgdir}/usr/share/pixmaps/" + install -D -m 644 "${srcdir}/squashfs-root/usr/share/icons/hicolor/0x0/apps/pathio.png" "${pkgdir}/usr/share/pixmaps/" + + bluearrow Desktop entry + install -Dm644 "${srcdir}/squashfs-root/pathio.desktop" "${pkgdir}/usr/share/applications/pathio.desktop" +} +""" + + +def render_pkgbuild(branch, release): + version = ( + release['version_major'], + release['version_minor'], + release['version_patch'], + BRANCHES.index(release['version_channel_name']) + ) + version = f"{version[0]}.{version[1]}.{version[2]}_{version[3]}" + patch = release['version_channel_edition'] + url = release['download_url'] + pkgname = 'pathio-bin' if branch == 'stable' else f"pathio-{branch}-bin" + return PKGBUILD_TEMPLATE.format(branch, version, pkgname, patch, url)+PKGBUILD_STATIC_PART + + +def main(): + if len(sys.argv) != 2 or sys.argv[1] not in BRANCHES: + print(f"Usage:") + print(f" {sys.argv[0]} branch") + print() + print(f" Argument branch can be: stable,beta,alpha") + else: + Path('PKGBUILD').write_text( + render_pkgbuild( + sys.argv[1], + json.loads( + urlopen( + f'https://api.pathio.xyz/api/asset/latest/{sys.argv[1]}/linux' + ).read() + ) + ) + ) + subprocess.run("rm -f license.html", shell=True) + subprocess.run("updpkgsums", shell=True).check_returncode() + subprocess.run("makepkg --printsrcinfo > .SRCINFO", shell=True).check_returncode() + subprocess.run("rm -f license.html", shell=True) + subprocess.run("makepkg -f", shell=True).check_returncode() + subprocess.run('git commit -am "Version updated"', shell=True).check_returncode() + print('Now, double-check everything and "git push"') + + + +if __name__ == '__main__': + main() |