Rename make-deb.sh to make-deb.sh
This commit is contained in:
95
PyQt5-Edition/make-deb.sh
Normal file
95
PyQt5-Edition/make-deb.sh
Normal file
@@ -0,0 +1,95 @@
|
||||
#!/bin/bash
|
||||
|
||||
WORKING_DIR=$1
|
||||
APPIMAGE_LOCATION=$2
|
||||
PACKAGE_NAME=$3
|
||||
SOFTWARE_NAME=$4
|
||||
ARCHITECTURE=$5
|
||||
VERSION=$6
|
||||
DEVELOPER=$7
|
||||
DEVELOPER_MAIL=$8
|
||||
MAINTAINER=$9
|
||||
MAINTAINER_MAIL=${10}
|
||||
CATEGORY=${11}
|
||||
SIMPLE_DESCRIPTION=${12}
|
||||
DETAILED_DESCRIPTION=${13}
|
||||
HOMEPAGE=${14}
|
||||
|
||||
cp "$APPIMAGE_LOCATION" "$WORKING_DIR"
|
||||
cd "$WORKING_DIR" || exit
|
||||
|
||||
APPIMAGE_NAME="${APPIMAGE_LOCATION##*/}"
|
||||
fakeroot chmod +x ./"$APPIMAGE_NAME"
|
||||
./"$APPIMAGE_NAME" --appimage-extract >/dev/null
|
||||
echo "Extract AppImage Successfully!"
|
||||
|
||||
# TODO 有些图像的分辨率不是标准的,这会导致映射出问题
|
||||
|
||||
ICON_SIZE=$(identify -format "%w" ./squashfs-root/*.png)
|
||||
mkdir -p ./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/entries/icons/hicolor/"$ICON_SIZE"x"$ICON_SIZE"/apps
|
||||
cp ./squashfs-root/*.png ./"$PACKAGE_NAME".png
|
||||
mv ./"$PACKAGE_NAME".png ./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/entries/icons/hicolor/"$ICON_SIZE"x"$ICON_SIZE"/apps
|
||||
|
||||
mkdir ./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/entries/applications
|
||||
cp ./squashfs-root/*.desktop ./"$PACKAGE_NAME".desktop
|
||||
mv ./"$PACKAGE_NAME".desktop ./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/entries/applications
|
||||
|
||||
sed -i "s|^Name=.*|Name=$SOFTWARE_NAME|" \
|
||||
./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/entries/applications/"$PACKAGE_NAME".desktop
|
||||
|
||||
sed -i "s|^Exec=.*|Exec=/opt/apps/$PACKAGE_NAME/files/AppRun|" \
|
||||
./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/entries/applications/"$PACKAGE_NAME".desktop
|
||||
|
||||
sed -i "s|^Icon=.*|Icon=/opt/apps/$PACKAGE_NAME/entries/icons/hicolor/${ICON_SIZE}x${ICON_SIZE}/apps/$PACKAGE_NAME|" \
|
||||
./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/entries/applications/"$PACKAGE_NAME".desktop
|
||||
|
||||
sed -i "s|^Categories=.*|Categories=$CATEGORY;|" \
|
||||
./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/entries/applications/"$PACKAGE_NAME".desktop
|
||||
|
||||
mkdir ./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/files
|
||||
mv ./squashfs-root/* ./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/files
|
||||
mv ./squashfs-root/.[!.]* ./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/files
|
||||
rmdir ./squashfs-root
|
||||
|
||||
touch ./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/info
|
||||
{
|
||||
echo "{"
|
||||
echo -e "\t\"appid\": \"$PACKAGE_NAME\""
|
||||
echo "}"
|
||||
} >>./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME"/info
|
||||
|
||||
mkdir ./"$PACKAGE_NAME"/DEBIAN
|
||||
touch ./"$PACKAGE_NAME"/DEBIAN/control
|
||||
touch ./"$PACKAGE_NAME"/DEBIAN/postinst
|
||||
|
||||
INSTALLED_SIZE=$(du -sk ./"$PACKAGE_NAME"/opt/apps/"$PACKAGE_NAME" | cut -f1)
|
||||
{
|
||||
echo "Package: ""$PACKAGE_NAME"
|
||||
echo "Version: ""$VERSION"
|
||||
echo "Architecture: ""$ARCHITECTURE"
|
||||
echo "Section: utils"
|
||||
echo "Priority: Optional"
|
||||
echo "Installed-Size: ""$INSTALLED_SIZE"
|
||||
echo "Developer: ""$DEVELOPER"" <""$DEVELOPER_MAIL"">"
|
||||
echo "Maintainer: ""$MAINTAINER"" <""$MAINTAINER_MAIL"">"
|
||||
echo "Homepage: ""$HOMEPAGE"
|
||||
echo "Description: ""$SIMPLE_DESCRIPTION"
|
||||
echo " ""$DETAILED_DESCRIPTION"
|
||||
} >>./"$PACKAGE_NAME"/DEBIAN/control
|
||||
|
||||
{
|
||||
echo "#!/bin/bash"
|
||||
echo "chmod -R 777 /opt/apps/""$PACKAGE_NAME""/*"
|
||||
echo "ln -s /opt/apps/$PACKAGE_NAME/entries/icons/hicolor/${ICON_SIZE}x${ICON_SIZE}/apps/$PACKAGE_NAME.png \
|
||||
/usr/share/icons/hicolor/${ICON_SIZE}x${ICON_SIZE}/apps/$PACKAGE_NAME.png"
|
||||
} >>./"$PACKAGE_NAME"/DEBIAN/postinst
|
||||
|
||||
fakeroot chmod 755 ./"$PACKAGE_NAME"/DEBIAN
|
||||
fakeroot chmod 644 ./"$PACKAGE_NAME"/DEBIAN/control
|
||||
fakeroot chmod 755 ./"$PACKAGE_NAME"/DEBIAN/postinst
|
||||
echo "Construct Package Successfully!"
|
||||
|
||||
fakeroot dpkg -b ./"$PACKAGE_NAME" . >/dev/null && echo "Make deb Successfully"
|
||||
|
||||
rm ./"$APPIMAGE_NAME"
|
||||
rm -rf ./"$PACKAGE_NAME"
|
||||
Reference in New Issue
Block a user