From b815e2b1233e07362de20c34f0e83fb51be82919 Mon Sep 17 00:00:00 2001 From: alex-free Date: Sat, 13 Jun 2026 23:36:51 -0600 Subject: [PATCH] add unzip --- homebrew/Unzip/build.sh | 29 ++++++++++++++++++ homebrew/Unzip/homebrew.js | 50 +++++++++++++++++++++++++++++++ homebrew/Unzip/sce_sys/icon0.png | Bin 0 -> 6774 bytes 3 files changed, 79 insertions(+) create mode 100755 homebrew/Unzip/build.sh create mode 100755 homebrew/Unzip/homebrew.js create mode 100755 homebrew/Unzip/sce_sys/icon0.png diff --git a/homebrew/Unzip/build.sh b/homebrew/Unzip/build.sh new file mode 100755 index 0000000..64ce66b --- /dev/null +++ b/homebrew/Unzip/build.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +# Copyright (C) 2024 John Törnblom +# +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING. If not see +# . + +SCRIPT_PATH="$(realpath "${BASH_SOURCE[0]}")" +SCRIPT_DIR="$(dirname "${SCRIPT_PATH}")" + +if [[ -z "$PS5_PAYLOAD_SDK" ]]; then + echo "error: PS5_PAYLOAD_SDK is not set" + exit 1 +fi + +source "${PS5_PAYLOAD_SDK}/toolchain/prospero.sh" || exit 1 + +# ffplay is included with sdk, just copy it +cp "${PS5_SYSROOT}/${PS5_HBROOT}/bin/unzip" "${SCRIPT_DIR}/unzip.elf" diff --git a/homebrew/Unzip/homebrew.js b/homebrew/Unzip/homebrew.js new file mode 100755 index 0000000..62bcd53 --- /dev/null +++ b/homebrew/Unzip/homebrew.js @@ -0,0 +1,50 @@ +/* Copyright (C) 2024 John Törnblom + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 3, or (at your option) any +later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; see the file COPYING. If not, see +. */ + + +async function main() { + const PAYLOAD = window.workingDir + '/unzip.elf'; + + return { + mainText: "Unzip", + secondaryText: 'Extract zip files', + onclick: async () => { + let zip = await pickFile('', 'Select zip file to extract...', true); + if(!zip) { + return; + } + + if(!zip.startsWith('/')) { + zip = ApiClient.getNetworkShareHttpProxyUrl(zip); + } + + let extract_dir = await pickDirectory('', 'Select folder to extract to...', true); + if(!extract_dir) { + return; + } + + + if(!extract_dir.startsWith('/')) { + extract_dir = ApiClient.getNetworkShareHttpProxyUrl(extract_dir); + } + + return { + path: PAYLOAD, + args: ['-o', zip, '-d', extract_dir] + }; + }, + }; +} diff --git a/homebrew/Unzip/sce_sys/icon0.png b/homebrew/Unzip/sce_sys/icon0.png new file mode 100755 index 0000000000000000000000000000000000000000..fb1491bbb65ec35fcaac8deba7e7410e6dfd348e GIT binary patch literal 6774 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 literal 0 HcmV?d00001