From cc589f3222a6d6ed8365a8190916a0fe7f89aa11 Mon Sep 17 00:00:00 2001 From: Azathothas Date: Sat, 7 Sep 2024 01:08:04 +0545 Subject: [PATCH] [+] Kitty https://github.com/Azathothas/Toolpacks/issues/28 --- .github/scripts/aarch64_Linux/bins/kitty.sh | 99 +++++++++++++++++++ .github/scripts/aarch64_Linux/bins/kitty.yaml | 8 ++ .github/scripts/x86_64_Linux/bins/kitty.sh | 99 +++++++++++++++++++ .github/scripts/x86_64_Linux/bins/kitty.yaml | 8 ++ 4 files changed, 214 insertions(+) create mode 100644 .github/scripts/aarch64_Linux/bins/kitty.sh create mode 100644 .github/scripts/aarch64_Linux/bins/kitty.yaml create mode 100644 .github/scripts/x86_64_Linux/bins/kitty.sh create mode 100644 .github/scripts/x86_64_Linux/bins/kitty.yaml diff --git a/.github/scripts/aarch64_Linux/bins/kitty.sh b/.github/scripts/aarch64_Linux/bins/kitty.sh new file mode 100644 index 000000000..244b8ae9f --- /dev/null +++ b/.github/scripts/aarch64_Linux/bins/kitty.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash + +#-------------------------------------------------------# +#Sanity Checks +if [ "$BUILD" != "YES" ] || \ + [ -z "$BINDIR" ] || \ + [ -z "$EGET_EXCLUDE" ] || \ + [ -z "$EGET_TIMEOUT" ] || \ + [ -z "$GIT_TERMINAL_PROMPT" ] || \ + [ -z "$GIT_ASKPASS" ] || \ + [ -z "$GITHUB_TOKEN" ] || \ + [ -z "$SYSTMP" ] || \ + [ -z "$TMPDIRS" ]; then + #exit + echo -e "\n[+]Skipping Builds...\n" + exit 1 +fi +#-------------------------------------------------------# + +#-------------------------------------------------------# +##Main +export SKIP_BUILD="NO" #YES, in case of deleted repos, broken builds etc +if [ "$SKIP_BUILD" == "NO" ]; then + #kitty : Cross-platform, fast, feature-rich, GPU based terminal + export BIN="kitty" + export SOURCE_URL="https://github.com/kovidgoyal/kitty" + echo -e "\n\n [+] (Building | Fetching) $BIN :: $SOURCE_URL\n" + ##Build + pushd "$($TMPDIRS)" >/dev/null 2>&1 + nix bundle --bundler "github:ralismark/nix-appimage" "nixpkgs#kitty" --log-format bar-with-logs + ##Copy + sudo rsync -av --copy-links "./kitty.AppImage" "./kitty.AppImage.tmp" + sudo chown -R "$(whoami):$(whoami)" "./kitty.AppImage.tmp" && chmod -R 755 "./kitty.AppImage.tmp" + du -sh "./kitty.AppImage.tmp" && file "./kitty.AppImage.tmp" + ##Extract + APPIMAGE="$(realpath .)/kitty.AppImage.tmp" && export APPIMAGE="${APPIMAGE}" + OFFSET="$(${APPIMAGE} --appimage-offset)" && export OFFSET="${OFFSET}" + tail -c +"$(($OFFSET + 1))" "${APPIMAGE}" > "./squash.tmp" + #unsquashfs -force -dest "./squash_tmp/" "./squash.tmp" + "${APPIMAGE}" --appimage-extract >/dev/null && rm -f "${APPIMAGE}" + OWD="$(realpath .)" && export OWD="${OWD}" + APPIMAGE_EXTRACT="$(realpath "./squashfs-root")" && export APPIMAGE_EXTRACT="${APPIMAGE_EXTRACT}" + ##Patch + if [ -d "${APPIMAGE_EXTRACT}" ] && [ "$(find "${APPIMAGE_EXTRACT}" -mindepth 1 -print -quit 2>/dev/null)" ]; then + #Media + cd "${APPIMAGE_EXTRACT}" + mkdir -p "./usr/share/applications" && mkdir -p "./usr/share/metainfo" + SHARE_DIR="$(find "." -path '*share/*kitty*' | awk '{ print length, $0 }' | sort -n | cut -d" " -f2- | head -n 1 | awk -F'/share/' '{print $1}')/share" && export SHARE_DIR="${SHARE_DIR}" + #usr/{applications,bash-completion,icons,metainfo,kitty,zsh} + rsync -av --copy-links \ + --include="*/" \ + --include="*.desktop" \ + --include="*.png" \ + --include="*.svg" \ + --include="*.xml" \ + --exclude="*" \ + "${SHARE_DIR}/" "./usr/share/" && ls "./usr/share/" + ##Appdata/AppStream + # find "." -path '*share/*kitty*' | awk '{ print length, $0 }' | sort -n | cut -d" " -f2- | head -n 1 | xargs -I {} sh -c 'cp {} "./usr/share/metainfo/"' ; cp "./usr/share/metainfo/kitty.metainfo.xml" "./usr/share/metainfo/kitty.appdata.xml" + #Icon + find "." -path '*/apps/*.png' | awk '{ print length, $0 }' | sort -n | cut -d" " -f2- | head -n 1 | xargs -I {} sh -c 'cp "{}" ./kitty.png' + find "." -maxdepth 1 -type f -name '*.svg' -exec sh -c 'convert "$0" "${0%.svg}.png"' {} \; 2>/dev/null + cp "./kitty.png" "./.DirIcon" + ##Desktop + find "." -path '*kitty*.desktop' | awk '{ print length, $0 }' | sort -n | cut -d" " -f2- | head -n 1 | xargs -I {} sh -c 'cp {} "./kitty.desktop"' + sed 's/Icon=[^ ]*/Icon=kitty/' -i "./kitty.desktop" 2>/dev/null + #(Re)Pack + cd "${OWD}" + curl -qfsSL "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$(uname -m).AppImage" -o "./appimagetool" && chmod +x "./appimagetool" + ARCH="$(uname -m)" "./appimagetool" --comp "zstd" \ + --mksquashfs-opt -root-owned \ + --mksquashfs-opt -no-xattrs \ + --mksquashfs-opt -noappend \ + --mksquashfs-opt -b --mksquashfs-opt "1M" \ + --mksquashfs-opt -mkfs-time --mksquashfs-opt "0" \ + --mksquashfs-opt -Xcompression-level --mksquashfs-opt "22" \ + "${APPIMAGE_EXTRACT}" "$BINDIR/kitty.AppImage" + #Meta + du -sh "$BINDIR/kitty.AppImage" && file "$BINDIR/kitty.AppImage" + #clean + unset APPIMAGE APPIMAGE_EXTRACT OFFSET OWD SHARE_DIR + fi + #Fetch + eval "$EGET_TIMEOUT" eget "$SOURCE_URL" --asset "kitten-linux-arm64" "$EGET_EXCLUDE" --to "$BINDIR/kitten" + #End + nix-collect-garbage >/dev/null 2>&1 ; popd >/dev/null 2>&1 +fi +#-------------------------------------------------------# + +#-------------------------------------------------------# +##Cleanup +unset SKIP_BUILD ; export BUILT="YES" +#In case of zig polluted env +unset AR CC CFLAGS CXX CPPFLAGS CXXFLAGS DLLTOOL HOST_CC HOST_CXX LDFLAGS LIBS OBJCOPY RANLIB +#In case of go polluted env +unset GOARCH GOOS CGO_ENABLED CGO_CFLAGS +#PKG Config +unset PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR PKG_CONFIG_SYSTEM_INCLUDE_PATH PKG_CONFIG_SYSTEM_LIBRARY_PATH +#-------------------------------------------------------# \ No newline at end of file diff --git a/.github/scripts/aarch64_Linux/bins/kitty.yaml b/.github/scripts/aarch64_Linux/bins/kitty.yaml new file mode 100644 index 000000000..aa2ba31db --- /dev/null +++ b/.github/scripts/aarch64_Linux/bins/kitty.yaml @@ -0,0 +1,8 @@ +name: "kitty" +description: "Cross-platform, fast, feature-rich, GPU based terminal" +web_url: "https://sw.kovidgoyal.net/kitty/" +repo_url: "https://github.com/kovidgoyal/kitty" +path: "/" +bins: + - "kitty.AppImage" + - "kitten" \ No newline at end of file diff --git a/.github/scripts/x86_64_Linux/bins/kitty.sh b/.github/scripts/x86_64_Linux/bins/kitty.sh new file mode 100644 index 000000000..1ec8f509b --- /dev/null +++ b/.github/scripts/x86_64_Linux/bins/kitty.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash + +#-------------------------------------------------------# +#Sanity Checks +if [ "$BUILD" != "YES" ] || \ + [ -z "$BINDIR" ] || \ + [ -z "$EGET_EXCLUDE" ] || \ + [ -z "$EGET_TIMEOUT" ] || \ + [ -z "$GIT_TERMINAL_PROMPT" ] || \ + [ -z "$GIT_ASKPASS" ] || \ + [ -z "$GITHUB_TOKEN" ] || \ + [ -z "$SYSTMP" ] || \ + [ -z "$TMPDIRS" ]; then + #exit + echo -e "\n[+]Skipping Builds...\n" + exit 1 +fi +#-------------------------------------------------------# + +#-------------------------------------------------------# +##Main +export SKIP_BUILD="NO" #YES, in case of deleted repos, broken builds etc +if [ "$SKIP_BUILD" == "NO" ]; then + #kitty : Cross-platform, fast, feature-rich, GPU based terminal + export BIN="kitty" + export SOURCE_URL="https://github.com/kovidgoyal/kitty" + echo -e "\n\n [+] (Building | Fetching) $BIN :: $SOURCE_URL\n" + ##Build + pushd "$($TMPDIRS)" >/dev/null 2>&1 + nix bundle --bundler "github:ralismark/nix-appimage" "nixpkgs#kitty" --log-format bar-with-logs + ##Copy + sudo rsync -av --copy-links "./kitty.AppImage" "./kitty.AppImage.tmp" + sudo chown -R "$(whoami):$(whoami)" "./kitty.AppImage.tmp" && chmod -R 755 "./kitty.AppImage.tmp" + du -sh "./kitty.AppImage.tmp" && file "./kitty.AppImage.tmp" + ##Extract + APPIMAGE="$(realpath .)/kitty.AppImage.tmp" && export APPIMAGE="${APPIMAGE}" + OFFSET="$(${APPIMAGE} --appimage-offset)" && export OFFSET="${OFFSET}" + tail -c +"$(($OFFSET + 1))" "${APPIMAGE}" > "./squash.tmp" + #unsquashfs -force -dest "./squash_tmp/" "./squash.tmp" + "${APPIMAGE}" --appimage-extract >/dev/null && rm -f "${APPIMAGE}" + OWD="$(realpath .)" && export OWD="${OWD}" + APPIMAGE_EXTRACT="$(realpath "./squashfs-root")" && export APPIMAGE_EXTRACT="${APPIMAGE_EXTRACT}" + ##Patch + if [ -d "${APPIMAGE_EXTRACT}" ] && [ "$(find "${APPIMAGE_EXTRACT}" -mindepth 1 -print -quit 2>/dev/null)" ]; then + #Media + cd "${APPIMAGE_EXTRACT}" + mkdir -p "./usr/share/applications" && mkdir -p "./usr/share/metainfo" + SHARE_DIR="$(find "." -path '*share/*kitty*' | awk '{ print length, $0 }' | sort -n | cut -d" " -f2- | head -n 1 | awk -F'/share/' '{print $1}')/share" && export SHARE_DIR="${SHARE_DIR}" + #usr/{applications,bash-completion,icons,metainfo,kitty,zsh} + rsync -av --copy-links \ + --include="*/" \ + --include="*.desktop" \ + --include="*.png" \ + --include="*.svg" \ + --include="*.xml" \ + --exclude="*" \ + "${SHARE_DIR}/" "./usr/share/" && ls "./usr/share/" + ##Appdata/AppStream + # find "." -path '*share/*kitty*' | awk '{ print length, $0 }' | sort -n | cut -d" " -f2- | head -n 1 | xargs -I {} sh -c 'cp {} "./usr/share/metainfo/"' ; cp "./usr/share/metainfo/kitty.metainfo.xml" "./usr/share/metainfo/kitty.appdata.xml" + #Icon + find "." -path '*/apps/*.png' | awk '{ print length, $0 }' | sort -n | cut -d" " -f2- | head -n 1 | xargs -I {} sh -c 'cp "{}" ./kitty.png' + find "." -maxdepth 1 -type f -name '*.svg' -exec sh -c 'convert "$0" "${0%.svg}.png"' {} \; 2>/dev/null + cp "./kitty.png" "./.DirIcon" + ##Desktop + find "." -path '*kitty*.desktop' | awk '{ print length, $0 }' | sort -n | cut -d" " -f2- | head -n 1 | xargs -I {} sh -c 'cp {} "./kitty.desktop"' + sed 's/Icon=[^ ]*/Icon=kitty/' -i "./kitty.desktop" 2>/dev/null + #(Re)Pack + cd "${OWD}" + curl -qfsSL "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$(uname -m).AppImage" -o "./appimagetool" && chmod +x "./appimagetool" + ARCH="$(uname -m)" "./appimagetool" --comp "zstd" \ + --mksquashfs-opt -root-owned \ + --mksquashfs-opt -no-xattrs \ + --mksquashfs-opt -noappend \ + --mksquashfs-opt -b --mksquashfs-opt "1M" \ + --mksquashfs-opt -mkfs-time --mksquashfs-opt "0" \ + --mksquashfs-opt -Xcompression-level --mksquashfs-opt "22" \ + "${APPIMAGE_EXTRACT}" "$BINDIR/kitty.AppImage" + #Meta + du -sh "$BINDIR/kitty.AppImage" && file "$BINDIR/kitty.AppImage" + #clean + unset APPIMAGE APPIMAGE_EXTRACT OFFSET OWD SHARE_DIR + fi + #Fetch + eval "$EGET_TIMEOUT" eget "$SOURCE_URL" --asset "kitten-linux-amd64" "$EGET_EXCLUDE" --to "$BINDIR/kitten" + #End + nix-collect-garbage >/dev/null 2>&1 ; popd >/dev/null 2>&1 +fi +#-------------------------------------------------------# + +#-------------------------------------------------------# +##Cleanup +unset SKIP_BUILD ; export BUILT="YES" +#In case of zig polluted env +unset AR CC CFLAGS CXX CPPFLAGS CXXFLAGS DLLTOOL HOST_CC HOST_CXX LDFLAGS LIBS OBJCOPY RANLIB +#In case of go polluted env +unset GOARCH GOOS CGO_ENABLED CGO_CFLAGS +#PKG Config +unset PKG_CONFIG_PATH PKG_CONFIG_LIBDIR PKG_CONFIG_SYSROOT_DIR PKG_CONFIG_SYSTEM_INCLUDE_PATH PKG_CONFIG_SYSTEM_LIBRARY_PATH +#-------------------------------------------------------# \ No newline at end of file diff --git a/.github/scripts/x86_64_Linux/bins/kitty.yaml b/.github/scripts/x86_64_Linux/bins/kitty.yaml new file mode 100644 index 000000000..aa2ba31db --- /dev/null +++ b/.github/scripts/x86_64_Linux/bins/kitty.yaml @@ -0,0 +1,8 @@ +name: "kitty" +description: "Cross-platform, fast, feature-rich, GPU based terminal" +web_url: "https://sw.kovidgoyal.net/kitty/" +repo_url: "https://github.com/kovidgoyal/kitty" +path: "/" +bins: + - "kitty.AppImage" + - "kitten" \ No newline at end of file