mirror of
https://gitee.com/spark-store-project/uos-packaging-tools
synced 2025-12-14 19:12:08 +08:00
update: flatpak extractor
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
Package: uos-packaging-tools
|
Package: uos-packaging-tools
|
||||||
Version: 1.3.2
|
Version: 1.4.0
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Maintainer: shenmo<shenmo@spark-app.store>
|
Maintainer: shenmo<shenmo@spark-app.store>
|
||||||
Installed-Size: 10
|
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
|
Section: graphics
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Description: uos-packaging-tools
|
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
|
Icon=uos-packaging-tools
|
||||||
MimeType=application/vnd.debian.binary-package;application/x-deb;
|
MimeType=application/vnd.debian.binary-package;application/x-deb;
|
||||||
Name=直接解包
|
Name=直接解包
|
||||||
NoDisplay=false
|
NoDisplay=true
|
||||||
StartupWMClass=直接解包
|
StartupWMClass=直接解包
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
|
|||||||
@@ -9,4 +9,4 @@ Name[zh_CN]=安装
|
|||||||
StartupWMClass=Install
|
StartupWMClass=Install
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
NoDisplay=false
|
NoDisplay=true
|
||||||
|
|||||||
@@ -8,4 +8,4 @@ Name=重打包
|
|||||||
StartupWMClass=重打包
|
StartupWMClass=重打包
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
NoDisplay=false
|
NoDisplay=true
|
||||||
|
|||||||
Reference in New Issue
Block a user