summarylogtreecommitdiffstats
path: root/mkPKGBUILD.py
diff options
context:
space:
mode:
authorÁdler Neves2019-05-19 15:38:07 -0300
committerÁdler Neves2019-05-19 15:38:07 -0300
commitf408bce29b8e0afbadad1cc4bfad20510e54df4a (patch)
tree9354dd1386105d9c72d6b14e4ed5f5319a10de8f /mkPKGBUILD.py
parent763487c15ae9857761e1ed7bf27dcecb0ed0b0bf (diff)
downloadaur-f408bce29b8e0afbadad1cc4bfad20510e54df4a.tar.gz
Version updated
Diffstat (limited to 'mkPKGBUILD.py')
-rwxr-xr-xmkPKGBUILD.py121
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()