mirror of
https://gitee.com/spark-store-project/uos-packaging-tools
synced 2025-12-14 02:52:07 +08:00
update: flatpak extractor
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
Package: uos-packaging-tools
|
||||
Version: 1.3.2
|
||||
Version: 1.4.0
|
||||
Architecture: all
|
||||
Maintainer: shenmo<shenmo@spark-app.store>
|
||||
Installed-Size: 10
|
||||
Depends: libnotify-bin,fakeroot,zstd,policykit-1 | polkit,zenity
|
||||
Depends: libnotify-bin,fakeroot,zstd,policykit-1 | polkit,zenity,bash,ostree
|
||||
Section: graphics
|
||||
Priority: optional
|
||||
Description: uos-packaging-tools
|
||||
|
||||
60
src/opt/uos-packaging-tools/flap-extractor
Executable file
60
src/opt/uos-packaging-tools/flap-extractor
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Flatpak Extractor Script
|
||||
# Usage: ./flatpak-extractor.sh <flatpak-file>
|
||||
|
||||
set -e
|
||||
|
||||
# Check if filename is provided
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Error: No Flatpak file specified"
|
||||
echo "Usage: $0 <flatpak-file>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FLATPAK_FILE="$(realpath $1)"
|
||||
|
||||
# Check if file exists
|
||||
if [ ! -f "$FLATPAK_FILE" ]; then
|
||||
echo "Error: File '$FLATPAK_FILE' not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create output directory name from flatpak filename (remove .flatpak extension)
|
||||
OUTPUT_DIR="${FLATPAK_FILE%.flatpak}"
|
||||
if [ "$OUTPUT_DIR" = "$FLATPAK_FILE" ]; then
|
||||
# File doesn't have .flatpak extension, append _extracted
|
||||
OUTPUT_DIR="${FLATPAK_FILE}_extracted"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# Create temporary directory for ostree repo
|
||||
mkdir -p "${FLATPAK_FILE}_tmp"
|
||||
REPO_DIR="${FLATPAK_FILE}_tmp"
|
||||
trap 'rm -rf "$REPO_DIR"' EXIT
|
||||
|
||||
echo "Extracting $FLATPAK_FILE to $OUTPUT_DIR..."
|
||||
|
||||
# Initialize ostree repo
|
||||
pushd "$REPO_DIR"
|
||||
echo "Initializing ostree repository..."
|
||||
ostree init --repo="repo" --mode=bare-user
|
||||
|
||||
# Apply static delta
|
||||
echo "Applying static delta..."
|
||||
ostree static-delta apply-offline --repo="repo" "$FLATPAK_FILE"
|
||||
|
||||
|
||||
|
||||
# Checkout the files
|
||||
echo "Checking out files..."
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
|
||||
ostree checkout --repo="repo" -U $(basename $(echo repo/objects/*/*.commit | cut -d/ -f3- --output-delimiter= ) .commit) "outdir"
|
||||
mv -v outdir/* $OUTPUT_DIR
|
||||
|
||||
popd
|
||||
notify-send $(basename $1)拆包完成 -i /usr/share/icons/uos-packaging-tools.png
|
||||
|
||||
echo "Extraction complete! Files are in: $OUTPUT_DIR"
|
||||
1
src/usr/bin/flatpak-extractor
Symbolic link
1
src/usr/bin/flatpak-extractor
Symbolic link
@@ -0,0 +1 @@
|
||||
../../opt/uos-packaging-tools/flap-extractor
|
||||
11
src/usr/share/applications/flatpak-extract.desktop
Normal file
11
src/usr/share/applications/flatpak-extract.desktop
Normal file
@@ -0,0 +1,11 @@
|
||||
[Desktop Entry]
|
||||
Categories=Development;
|
||||
Encoding=UTF-8
|
||||
Exec=/opt/uos-packaging-tools/flap-extractor %F
|
||||
Icon=uos-packaging-tools
|
||||
MimeType=application/vnd.flatpak,application/vnd.xdgapp;application/octet-stream;
|
||||
Name=解包 Flatpak
|
||||
NoDisplay=true
|
||||
StartupWMClass=解包Flap
|
||||
Terminal=false
|
||||
Type=Application
|
||||
@@ -5,7 +5,7 @@ Exec=/opt/uos-packaging-tools/just-X-me %F
|
||||
Icon=uos-packaging-tools
|
||||
MimeType=application/vnd.debian.binary-package;application/x-deb;
|
||||
Name=直接解包
|
||||
NoDisplay=false
|
||||
NoDisplay=true
|
||||
StartupWMClass=直接解包
|
||||
Terminal=false
|
||||
Type=Application
|
||||
|
||||
@@ -9,4 +9,4 @@ Name[zh_CN]=安装
|
||||
StartupWMClass=Install
|
||||
Terminal=false
|
||||
Type=Application
|
||||
NoDisplay=false
|
||||
NoDisplay=true
|
||||
|
||||
@@ -8,4 +8,4 @@ Name=重打包
|
||||
StartupWMClass=重打包
|
||||
Terminal=false
|
||||
Type=Application
|
||||
NoDisplay=false
|
||||
NoDisplay=true
|
||||
|
||||
Reference in New Issue
Block a user