XR for Universal Blue and Fedora Atomic Desktops
vr fedora-atomic linux
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

Create Envision OCI shim

+78
+24
envision/pkg-install.nu
··· 1 + #!/usr/bin/env nu 2 + # SPDX-License-Identifier: AGPL-3.0-only 3 + # SPDX-FileCopyrightText: MatrixFurry <matrix@matrixfurry.com> 4 + 5 + def main [ 6 + --uninstall (-u) 7 + ] { 8 + if not $uninstall { 9 + envision-oci/Envision-x86_64.AppImage --appimage-extract 10 + 11 + open squashfs-root/org.gabmus.envision.Devel.desktop 12 + | str replace "Exec=envision" "Exec=sh -c 'export PATH=$HOME/.local/bin/envision-oci-shim:$PATH; exec envision --skip-dependency-check'" 13 + | save -f ~/.local/share/applications/org.gabmus.envision.Devel.desktop 14 + 15 + rm -rf ~/.local/bin/envision-oci-shim 16 + cp -r envision-oci/oci-shim ~/.local/bin/envision-oci-shim 17 + 18 + cp -f squashfs-root/org.gabmus.envision.Devel.svg ~/.local/share/icons/hicolor/scalable/apps/org.gabmus.envision.Devel.svg 19 + } else { 20 + rm -f ~/.local/share/icons/hicolor/scalable/apps/org.gabmus.envision.Devel.svg 21 + rm -f ~/.local/share/applications/org.gabmus.envision.Devel.desktop 22 + rm -rf ~/.local/bin/envision-oci-shim 23 + } 24 + }
+39
envision/pkg.nu
··· 1 + #!/usr/bin/env nu 2 + # SPDX-License-Identifier: AGPL-3.0-only 3 + # SPDX-FileCopyrightText: MatrixFurry <matrix@matrixfurry.com> 4 + 5 + const axr = path self .. 6 + 7 + # Upload envision-oci package to GitLab for AtomicXR Homebrew 8 + def main [ 9 + job: int # envision GitLab job ID 10 + version: int # envision-oci package version 11 + token?: string # GitLab deploy token 12 + ] { 13 + cd (mktemp -dt) 14 + 15 + let token = $token | default $env.DEPLOY_TOKEN? 16 + if ($token | is-empty) { 17 + error make { 18 + msg: "Either --token or $env.DEPLOY_TOKEN is required" 19 + } 20 + } 21 + 22 + mkdir pkg 23 + cp ($axr | path join "envision/pkg-install.nu") pkg/install.nu 24 + chmod 744 pkg/install.nu 25 + 26 + mkdir pkg/oci-shim 27 + cp ($axr | path join "envision/shim.nu") pkg/oci-shim/cmake 28 + cp ($axr | path join "envision/shim.nu") pkg/oci-shim/cargo 29 + chmod 744 pkg/oci-shim/* 30 + 31 + http get "https://gitlab.com/gabmus/envision/-/jobs/#{version}/artifacts/raw/Envision-x86_64.AppImage" 32 + | save -p pkg/Envision-x86_64.AppImage 33 + 34 + tar -C pkg -zcvf envision-oci.tar.gz . 35 + 36 + open --raw $"envision-oci.tar.gz" 37 + | into binary 38 + | http put --content-type application/gzip $"https://gitlab.com/api/v4/projects/75293878/packages/generic/envision-oci/($version)/envision-oci--($job).tar.gz" -H {DEPLOY-TOKEN: $token} 39 + }
+15
envision/shim.nu
··· 1 + #!/usr/bin/env nu 2 + # SPDX-License-Identifier: AGPL-3.0-only 3 + # SPDX-FileCopyrightText: MatrixFurry <matrix@matrixfurry.com> 4 + 5 + # The purpose of this shim is to make Envision build software in a OCI container, with preinstalled build dependencies. 6 + # Just rename this script to the desired build tool, then prepend it to Envision's PATH environment variable. It will 7 + # run instead of the system build tool. 8 + 9 + def main --wrapped [...args] { 10 + # Replace working directory with /build in commands 11 + let args = $args | str replace -a (pwd) /build 12 + 13 + # TODO: Use latest image from AtomicXR container registry 14 + podman run localhost/xr-multi:latest -v .:/build -- ...$args 15 + }