#!/usr/bin/env bash set -euo pipefail root_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" linuxdeploy="${LINUXDEPLOY:-linuxdeploy-x86_64.AppImage}" appimagetool="${APPIMAGETOOL:-}" output_dir="${OUTPUT_DIR:-${root_dir}/dist}" package_id="$(cargo pkgid --manifest-path "${root_dir}/Cargo.toml")" version="${package_id##*@}" work_dir="$(mktemp -d)" app_dir="${work_dir}/Comicviewer.AppDir" cleanup() { rm -rf "${work_dir}" } trap cleanup EXIT cargo build --manifest-path "${root_dir}/Cargo.toml" --release mkdir -p "${output_dir}" mkdir -p \ "${app_dir}/usr/bin" \ "${app_dir}/usr/share/applications" \ "${app_dir}/usr/share/icons/hicolor/scalable/apps" \ "${app_dir}/usr/share/metainfo" install -m 0755 "${root_dir}/target/release/comicviewer" "${app_dir}/usr/bin/comicviewer" install -m 0755 "${root_dir}/packaging/AppRun" "${app_dir}/AppRun" install -m 0644 \ "${root_dir}/data/io.github.comicviewer.Comicviewer.desktop" \ "${app_dir}/io.github.comicviewer.Comicviewer.desktop" install -m 0644 \ "${root_dir}/data/io.github.comicviewer.Comicviewer.desktop" \ "${app_dir}/usr/share/applications/io.github.comicviewer.Comicviewer.desktop" install -m 0644 \ "${root_dir}/data/io.github.comicviewer.Comicviewer.svg" \ "${app_dir}/io.github.comicviewer.Comicviewer.svg" install -m 0644 \ "${root_dir}/data/io.github.comicviewer.Comicviewer.svg" \ "${app_dir}/usr/share/icons/hicolor/scalable/apps/io.github.comicviewer.Comicviewer.svg" install -m 0644 \ "${root_dir}/data/io.github.comicviewer.Comicviewer.metainfo.xml" \ "${app_dir}/usr/share/metainfo/io.github.comicviewer.Comicviewer.appdata.xml" output_path="${output_dir}/Comicviewer-${version}-x86_64.AppImage" if [[ -z "${appimagetool}" ]]; then linuxdeploy_path="$(command -v "${linuxdeploy}" || true)" if [[ -z "${linuxdeploy_path}" ]]; then printf '%s\n' "APPIMAGETOOL 또는 LINUXDEPLOY를 지정하세요." >&2 exit 1 fi tool_dir="${work_dir}/appimage-tools" mkdir -p "${tool_dir}" ( cd "${tool_dir}" "${linuxdeploy_path}" --appimage-extract >/dev/null ) appimagetool="${tool_dir}/squashfs-root/plugins/linuxdeploy-plugin-appimage/usr/bin/appimagetool" fi env ARCH=x86_64 APPIMAGE_EXTRACT_AND_RUN=1 \ "${appimagetool}" "${app_dir}" "${output_path}" echo "Created ${output_path}"