Skip to content

Instantly share code, notes, and snippets.

@ailtonbsj
Created July 30, 2020 04:07
Show Gist options
  • Save ailtonbsj/805681b92f2e209ffe0c17e7e2b1bcc7 to your computer and use it in GitHub Desktop.
Save ailtonbsj/805681b92f2e209ffe0c17e7e2b1bcc7 to your computer and use it in GitHub Desktop.
An boilerplate to projects of debian package (.deb)
#!/bin/bash
GithubId="ailtonbsj"
Email="ailton.ifce@gmail.com"
AppDomain="com.github.ailtonbsj"
AppName="sample"
AppNameEn="Sample"
AppNameBr="Exemplo"
Comment="A Sample of application"
CommentBr="Um exemplo de aplicativo"
Description="This is just an example of how to create apps for linux."
DescriptionBr="Isso é só um exemplo de como criar apps para linux."
Homepage="https://ailtonbsj.github.io"
Bugtracker="https://ailtonbsj.github.io"
Help="https://ailtonbsj.github.io"
Donation="https://ailtonbsj.github.io"
Categories="Education;"
License="GPL-2.0+"
Caption="Screenshot of app"
CaptionBr="Tela do App"
ImageUrl="https://here.stay/the/address/of/my/screenshot.png"
Project="WinuniX"
Version="0.0.1"
Depends="default-jre | openjdk-8-jre"
# Project Folder
mkdir -p usr/share/$AppName
mkdir DEBIAN
mkdir -p usr/bin/
mkdir -p usr/share/applications/
mkdir -p usr/share/metainfo/
mkdir -p usr/share/icons/hicolor/128x128/apps/
mkdir -p usr/share/doc/$AppName
# mkdir -p usr/share/pixmaps/
ln -s /usr/share/$AppName/$AppName usr/bin/$AppName
ln -s /usr/share/$AppName/$AppName.png usr/share/icons/hicolor/128x128/apps/$AppName.png
ln -s /usr/share/$AppName/LICENSE usr/share/doc/$AppName/copyright
VersionDate=$(date +'%Y-%m-%d')
cat << EOF > usr/share/applications/$AppDomain.$AppName.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Name=${AppNameEn}
Name[pt_BR]=${AppNameBr}
Comment=${Comment}
Comment[pt_BR]=${CommentBr}
Exec=${AppName} %u
Icon=${AppName}
Categories=${Categories}
EOF
cat << EOF > usr/share/metainfo/$AppDomain.$AppName.appdata.xml
<?xml version="1.0" encoding="utf-8"?>
<component type="desktop">
<id>${AppDomain}.${AppName}.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>${License}</project_license>
<name>${AppNameEn}</name>
<name xml:lang="pt_BR">${AppNameBr}</name>
<summary>${Comment}</summary>
<summary xml:lang="pt_BR">${CommentBr}</summary>
<description>
<p>${Description}</p>
<p xml:lang="pt_BR">${DescriptionBr}</p>
</description>
<url type="homepage">${Homepage}</url>
<url type="bugtracker">${Bugtracker}</url>
<url type="help">${Help}</url>
<url type="donation">${Donation}</url>
<screenshots>
<screenshot type="default">
<caption>${Caption}</caption>
<caption xml:lang="pt_BR">${CaptionBr}</caption>
<image>${ImageUrl}</image>
</screenshot>
</screenshots>
<project_group>${Project}</project_group>
<provides>
<binary>${AppName}</binary>
</provides>
<releases>
<release version="${Version}" date="${VersionDate}"/>
</releases>
<content_rating type="oars-1.0" />
</component>
EOF
read -n1 -r -p "Press space to continue..." key
FolderSize=$(expr $(du -bs | cut -d'.' -f1) / 1024 + 1)
cat << EOF > DEBIAN/control
Package: ${AppName}
Version: ${Version}
Installed-Size: ${FolderSize}
Maintainer: ${GithubId} <${Email}>
Section: utils
Architecture: all
Priority: optional
Depends: ${Depends}
Homepage: ${Homepage}
Description: ${CommentBr}
${DescriptionBr}
.
$Description
EOF
if [ "$key" = '' ]; then
dpkg-deb -b . ..
else
echo "Not compiled!"
fi
# convert usr/share/$AppName/$AppName.png usr/share/pixmaps/$AppName.xpm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment