51ece5afed
Build and Package Oraset / build (macos-latest) (push) Waiting to run
Build and Package Oraset / build (ubuntu-latest) (push) Waiting to run
Build and Package Oraset / build (windows-latest) (push) Waiting to run
Build and Package Oraset / release (push) Blocked by required conditions
103 lines
2.8 KiB
Bash
103 lines
2.8 KiB
Bash
#!/bin/bash
|
|
|
|
# Oraset Debian Package Builder
|
|
# This script packages Oraset into a .deb file for Debian/Ubuntu
|
|
|
|
set -e
|
|
|
|
PACKAGE_NAME="oraset"
|
|
VERSION="1.0.0"
|
|
ARCH="all"
|
|
MAINTAINER="Oraset Developer"
|
|
DESCRIPTION="A simple cross-platform programming language"
|
|
LICENSE="GPL-3.0"
|
|
|
|
# Get the directory where the script is located
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "${SCRIPT_DIR}"
|
|
|
|
# Build directory
|
|
BUILD_DIR="orasetdeb"
|
|
PACKAGE_DIR="${BUILD_DIR}/${PACKAGE_NAME}_${VERSION}_${ARCH}"
|
|
|
|
echo "=== Oraset Debian Package Builder ==="
|
|
echo ""
|
|
|
|
# Clean previous build
|
|
echo "[1/6] Cleaning previous build..."
|
|
rm -rf ${BUILD_DIR}
|
|
mkdir -p ${PACKAGE_DIR}
|
|
|
|
# Install PyInstaller if not present
|
|
echo "[2/6] Checking PyInstaller..."
|
|
if ! command -v pyinstaller &> /dev/null; then
|
|
echo "Installing PyInstaller..."
|
|
pip install --break-system-packages pyinstaller
|
|
fi
|
|
|
|
# Create binary with PyInstaller
|
|
echo "[3/6] Building binary with PyInstaller..."
|
|
pyinstaller --onefile --name oraset oraset.py
|
|
|
|
# Copy binary to package directory
|
|
echo "[4/6] Copying files..."
|
|
mkdir -p ${PACKAGE_DIR}/usr/bin
|
|
cp dist/oraset ${PACKAGE_DIR}/usr/bin/
|
|
|
|
# Create DEBIAN directory and control file
|
|
echo "[5/6] Creating package metadata..."
|
|
mkdir -p ${PACKAGE_DIR}/DEBIAN
|
|
|
|
cat > ${PACKAGE_DIR}/DEBIAN/control << EOF
|
|
Package: ${PACKAGE_NAME}
|
|
Version: ${VERSION}
|
|
Section: interpreters
|
|
Priority: optional
|
|
Architecture: ${ARCH}
|
|
Depends: python3
|
|
Maintainer: ${MAINTAINER}
|
|
Description: ${DESCRIPTION}
|
|
A simple cross-platform programming language written in Python.
|
|
Supports Windows and Linux, with features like variables,
|
|
functions, classes, conditional statements, loops, and more.
|
|
EOF
|
|
|
|
# Create copyright file
|
|
mkdir -p ${PACKAGE_DIR}/usr/share/doc/${PACKAGE_NAME}
|
|
cat > ${PACKAGE_DIR}/usr/share/doc/${PACKAGE_NAME}/copyright << EOF
|
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
|
Upstream-Name: ${PACKAGE_NAME}
|
|
Upstream-Contact: ${MAINTAINER}
|
|
Source: https://github.com/oraset/oraset
|
|
|
|
Files: *
|
|
Copyright: ${LICENSE}
|
|
License: GPL-3.0
|
|
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 of the License.
|
|
.
|
|
On a Debian system, you can find the complete text of the GPL-3.0
|
|
license in /usr/share/common-licenses/GPL-3.
|
|
EOF
|
|
|
|
# Build the .deb package
|
|
echo "[6/6] Building .deb package..."
|
|
dpkg-deb --build ${PACKAGE_DIR}
|
|
|
|
# Move package to current directory
|
|
mv ${PACKAGE_DIR}.deb ${BUILD_DIR}/
|
|
|
|
# Clean up PyInstaller build files
|
|
rm -rf build dist
|
|
|
|
echo ""
|
|
echo "=== Build Complete ==="
|
|
echo "Package created: ${BUILD_DIR}/${PACKAGE_NAME}_${VERSION}_${ARCH}.deb"
|
|
echo ""
|
|
echo "To install the package, run:"
|
|
echo " sudo dpkg -i ${BUILD_DIR}/${PACKAGE_NAME}_${VERSION}_${ARCH}.deb"
|
|
echo ""
|
|
echo "To uninstall the package, run:"
|
|
echo " sudo dpkg -r ${PACKAGE_NAME}"
|