diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml
index 404c909e..8c0c192d 100644
--- a/.github/workflows/package.yml
+++ b/.github/workflows/package.yml
@@ -29,7 +29,7 @@ jobs:
env:
VERSION: ${{ inputs.version }}
RUNTIME: ${{ matrix.runtime }}
- run: ./build/ci/package.windows-portable.sh
+ run: ./build/scripts/package.windows-portable.sh
- name: Upload package artifact
uses: actions/upload-artifact@v4
with:
@@ -54,7 +54,7 @@ jobs:
env:
VERSION: ${{ inputs.version }}
RUNTIME: ${{ matrix.runtime }}
- run: ./build/ci/package.osx-app.sh
+ run: ./build/scripts/package.osx-app.sh
- name: Upload package artifact
uses: actions/upload-artifact@v4
with:
@@ -87,7 +87,7 @@ jobs:
run: |
mkdir build/SourceGit
tar -xf "build/sourcegit.${{ matrix.runtime }}.tar" -C build/SourceGit
- ./build/ci/package.linux.sh
+ ./build/scripts/package.linux.sh
- name: Upload package artifacts
uses: actions/upload-artifact@v4
with:
diff --git a/SourceGit.sln b/SourceGit.sln
index ee35d8f6..f879d23a 100644
--- a/SourceGit.sln
+++ b/SourceGit.sln
@@ -6,11 +6,6 @@ MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SourceGit", "src\SourceGit.csproj", "{2091C34D-4A17-4375-BEF3-4D60BE8113E4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{773082AC-D9C8-4186-8521-4B6A7BEE6158}"
- ProjectSection(SolutionItems) = preProject
- build\build.linux.sh = build\build.linux.sh
- build\build.osx.command = build\build.osx.command
- build\build.windows.ps1 = build\build.windows.ps1
- EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "resources", "resources", "{FD384607-ED99-47B7-AF31-FB245841BC92}"
EndProject
@@ -77,9 +72,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SPECS", "SPECS", "{7802CD7A
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "appimage", "appimage", "{5D125DD9-B48A-491F-B2FB-D7830D74C4DC}"
ProjectSection(SolutionItems) = preProject
- build\resources\appimage\publish-appimage = build\resources\appimage\publish-appimage
- build\resources\appimage\publish-appimage.conf = build\resources\appimage\publish-appimage.conf
- build\resources\appimage\runtime-x86_64 = build\resources\appimage\runtime-x86_64
build\resources\appimage\sourcegit.appdata.xml = build\resources\appimage\sourcegit.appdata.xml
build\resources\appimage\sourcegit.png = build\resources\appimage\sourcegit.png
EndProjectSection
diff --git a/build/build.linux.sh b/build/build.linux.sh
deleted file mode 100755
index 585dcfb3..00000000
--- a/build/build.linux.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-
-version=`cat ../VERSION`
-
-# Cleanup
-rm -rf SourceGit *.tar.gz resources/deb/opt *.deb *.rpm *.AppImage
-
-# Generic AppImage
-cd resources/appimage
-./publish-appimage -y -o sourcegit-${version}.linux.x86_64.AppImage
-
-# Move to build dir
-mv AppImages/sourcegit-${version}.linux.x86_64.AppImage ../../
-mv AppImages/AppDir/usr/bin ../../SourceGit
-cd ../../
-
-# Debain/Ubuntu package
-mkdir -p resources/deb/opt/sourcegit/
-mkdir -p resources/deb/usr/bin
-mkdir -p resources/deb/usr/share/applications
-mkdir -p resources/deb/usr/share/icons
-cp -f SourceGit/* resources/deb/opt/sourcegit/
-ln -sf ../../opt/sourcegit/sourcegit resources/deb/usr/bin
-cp -r resources/_common/applications resources/deb/usr/share/
-cp -r resources/_common/icons resources/deb/usr/share/
-sed -i "2s/.*/Version: ${version}/g" resources/deb/DEBIAN/control
-dpkg-deb --root-owner-group --build resources/deb ./sourcegit_${version}-1_amd64.deb
-
-# Redhat/CentOS/Fedora package
-rpmbuild -bb --target=x86_64 resources/rpm/SPECS/build.spec --define "_topdir `pwd`/resources/rpm" --define "_version ${version}"
-mv resources/rpm/RPMS/x86_64/sourcegit-${version}-1.x86_64.rpm .
-
-rm -rf SourceGit
diff --git a/build/build.osx.command b/build/build.osx.command
deleted file mode 100755
index f60c87b7..00000000
--- a/build/build.osx.command
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-version=`cat ../VERSION`
-
-rm -rf SourceGit.app *.zip
-
-mkdir -p SourceGit.app/Contents/Resources
-cp resources/app/App.icns SourceGit.app/Contents/Resources/App.icns
-sed "s/SOURCE_GIT_VERSION/${version}/g" resources/app/App.plist > SourceGit.app/Contents/Info.plist
-
-mkdir -p SourceGit.app/Contents/MacOS
-dotnet publish ../src/SourceGit.csproj -c Release -r osx-arm64 -o SourceGit.app/Contents/MacOS
-zip sourcegit_${version}.osx-arm64.zip -r SourceGit.app -x "*/*\.dsym/*"
-
-rm -rf SourceGit.app/Contents/MacOS
-
-mkdir -p SourceGit.app/Contents/MacOS
-dotnet publish ../src/SourceGit.csproj -c Release -r osx-x64 -o SourceGit.app/Contents/MacOS
-zip sourcegit_${version}.osx-x64.zip -r SourceGit.app -x "*/*\.dsym/*"
-
-rm -rf SourceGit.app
diff --git a/build/build.windows.ps1 b/build/build.windows.ps1
deleted file mode 100644
index 23735e4c..00000000
--- a/build/build.windows.ps1
+++ /dev/null
@@ -1,23 +0,0 @@
-$version = Get-Content ..\VERSION
-
-if (Test-Path SourceGit) {
- Remove-Item SourceGit -Recurse -Force
-}
-
-Remove-Item *.zip -Force
-
-dotnet publish ..\src\SourceGit.csproj -c Release -r win-arm64 -o SourceGit
-
-Remove-Item SourceGit\*.pdb -Force
-
-Compress-Archive -Path SourceGit -DestinationPath "sourcegit_$version.win-arm64.zip"
-
-if (Test-Path SourceGit) {
- Remove-Item SourceGit -Recurse -Force
-}
-
-dotnet publish ..\src\SourceGit.csproj -c Release -r win-x64 -o SourceGit
-
-Remove-Item SourceGit\*.pdb -Force
-
-Compress-Archive -Path SourceGit -DestinationPath "sourcegit_$version.win-x64.zip"
diff --git a/build/resources/appimage/publish-appimage b/build/resources/appimage/publish-appimage
deleted file mode 100755
index b8010187..00000000
--- a/build/resources/appimage/publish-appimage
+++ /dev/null
@@ -1,708 +0,0 @@
-#!/bin/bash
-################################################################################
-# PROJECT : Publish-AppImage for .NET
-# WEBPAGE : https://github.com/kuiperzone/Publish-AppImage
-# COPYRIGHT : Andy Thomas 2021-2023
-# LICENSE : MIT
-################################################################################
-
-###############################
-# CONSTANTS
-###############################
-
-declare -r _SCRIPT_VERSION="1.3.1"
-declare -r _SCRIPT_TITLE="Publish-AppImage for .NET"
-declare -r _SCRIPT_IMPL_MIN=1
-declare -r _SCRIPT_IMPL_MAX=1
-declare -r _SCRIPT_COPYRIGHT="Copyright 2023 Andy Thomas"
-declare -r _SCRIPT_WEBSITE="https://github.com/kuiperzone/Publish-AppImage"
-
-declare -r _SCRIPT_NAME="publish-appimage"
-declare -r _DEFAULT_CONF="${_SCRIPT_NAME}.conf"
-
-declare -r _APPIMAGE_KIND="appimage"
-declare -r _ZIP_KIND="zip"
-declare -r _DOTNET_NONE="null"
-
-
-###############################
-# FUNCTIONS
-###############################
-
-function assert_result
-{
- local _ret=$?
-
- if [ ${_ret} -ne 0 ]; then
- echo
- exit ${_ret}
- fi
-}
-
-function exec_or_die
-{
- echo "${1}"
- eval "${1}"
- assert_result
-}
-
-function ensure_directory
-{
- local _path="${1}"
-
- if [ ! -d "${_path}" ]; then
- mkdir -p "${_path}"
- assert_result
- fi
-}
-
-function remove_path
-{
- local _path="${1}"
-
- if [ -d "${_path}" ]; then
- rm -rf "${_path}"
- assert_result
- elif [ -f "${_path}" ]; then
- rm -f "${_path}"
- assert_result
- fi
-}
-
-function assert_mandatory
-{
- local _name="${1}"
- local _value="${2}"
-
- if [ "${_value}" == "" ]; then
- echo "${_name} undefined in: ${_conf_arg_value}"
- echo
- exit 1
- fi
-}
-
-function assert_opt_file
-{
- local _name="${1}"
- local _value="${2}"
-
- if [ "${_value}" != "" ] && [ ! -f "${_value}" ]; then
- echo "File not found: ${_value}"
-
- if [ "${_name}" != "" ]; then
- echo "See ${_name} in: ${_conf_arg_value}"
- fi
-
- echo
- exit 1
- fi
-}
-
-###############################
-# HANDLE ARGUMENTS
-###############################
-
-# Specify conf file
-declare -r _CONF_ARG="f"
-declare -r _CONF_ARG_NAME="conf"
-_conf_arg_value="${_DEFAULT_CONF}"
-_arg_syntax=":${_CONF_ARG}:"
-
-# Runtime ID
-declare -r _RID_ARG="r"
-declare -r _RID_ARG_NAME="runtime"
-_rid_arg_value="linux-x64"
-_arg_syntax="${_arg_syntax}${_RID_ARG}:"
-
-# Package kind
-declare -r _KIND_ARG="k"
-declare -r _KIND_ARG_NAME="kind"
-declare -l _kind_arg_value="${_APPIMAGE_KIND}"
-_arg_syntax="${_arg_syntax}${_KIND_ARG}:"
-
-# Run app
-declare -r _RUNAPP_ARG="u"
-declare -r _RUNAPP_ARG_NAME="run"
-_runapp_arg_value=false
-_arg_syntax="${_arg_syntax}${_RUNAPP_ARG}"
-
-# Verbose
-declare -r _VERBOSE_ARG="b"
-declare -r _VERBOSE_ARG_NAME="verbose"
-_verbose_arg_value=false
-_arg_syntax="${_arg_syntax}${_VERBOSE_ARG}"
-
-# Skip yes (no prompt)
-declare -r _SKIPYES_ARG="y"
-declare -r _SKIPYES_ARG_NAME="skip-yes"
-_skipyes_arg_value=false
-_arg_syntax="${_arg_syntax}${_SKIPYES_ARG}"
-
-# Output name
-declare -r _OUTPUT_ARG="o"
-declare -r _OUTPUT_ARG_NAME="output"
-_output_arg_value=""
-_arg_syntax="${_arg_syntax}${_OUTPUT_ARG}:"
-
-# Show version
-declare -r _VERSION_ARG="v"
-declare -r _VERSION_ARG_NAME="version"
-_version_arg_value=false
-_arg_syntax="${_arg_syntax}${_VERSION_ARG}"
-
-# Show help
-declare -r _HELP_ARG="h"
-declare -r _HELP_ARG_NAME="help"
-_help_arg_value=false
-_arg_syntax="${_arg_syntax}${_HELP_ARG}"
-
-_exit_help=0
-
-# Transform long options to short ones
-for arg in "${@}"; do
- shift
- case "${arg}" in
- ("--${_CONF_ARG_NAME}") set -- "$@" "-${_CONF_ARG}" ;;
- ("--${_RID_ARG_NAME}") set -- "$@" "-${_RID_ARG}" ;;
- ("--${_KIND_ARG_NAME}") set -- "$@" "-${_KIND_ARG}" ;;
- ("--${_RUNAPP_NAME}") set -- "$@" "-${_RUNAPP_ARG}" ;;
- ("--${_VERBOSE_ARG_NAME}") set -- "$@" "-${_VERBOSE_ARG}" ;;
- ("--${_SKIPYES_ARG_NAME}") set -- "$@" "-${_SKIPYES_ARG}" ;;
- ("--${_OUTPUT_ARG_NAME}") set -- "$@" "-${_OUTPUT_ARG}" ;;
- ("--${_VERSION_ARG_NAME}") set -- "$@" "-${_VERSION_ARG}" ;;
- ("--${_HELP_ARG_NAME}") set -- "$@" "-${_HELP_ARG}" ;;
- ("--"*)
- echo "Illegal argument: ${arg}"
- echo
-
- _exit_help=1
- break
- ;;
- (*) set -- "$@" "${arg}" ;;
- esac
-done
-
-if [ ${_exit_help} == 0 ]; then
- # Read arguments
- while getopts ${_arg_syntax} arg; do
- case "${arg}" in
- (${_CONF_ARG}) _conf_arg_value="${OPTARG}" ;;
- (${_RID_ARG}) _rid_arg_value="${OPTARG}" ;;
- (${_KIND_ARG}) _kind_arg_value="${OPTARG}" ;;
- (${_RUNAPP_ARG}) _runapp_arg_value=true ;;
- (${_VERBOSE_ARG}) _verbose_arg_value=true ;;
- (${_SKIPYES_ARG}) _skipyes_arg_value=true ;;
- (${_OUTPUT_ARG}) _output_arg_value="${OPTARG}" ;;
- (${_VERSION_ARG}) _version_arg_value=true ;;
- (${_HELP_ARG}) _help_arg_value=true ;;
- (*)
- echo "Illegal argument"
- echo
-
- _exit_help=1
- break
- ;;
- esac
- done
-fi
-
-# Handle and help and version
-if [ ${_help_arg_value} == true ] || [ $_exit_help != 0 ]; then
-
- _indent=" "
- echo "Usage:"
- echo "${_indent}${_SCRIPT_NAME} [-flags] [-option-n value-n]"
- echo
-
- echo "Help Options:"
- echo "${_indent}-${_HELP_ARG}, --${_HELP_ARG_NAME}"
- echo "${_indent}Show help information flag."
- echo
- echo "${_indent}-${_VERSION_ARG}, --${_VERSION_ARG_NAME}"
- echo "${_indent}Show version and about information flag."
- echo
-
- echo "Build Options:"
- echo "${_indent}-${_CONF_ARG}, --${_CONF_ARG_NAME} value"
- echo "${_indent}Specifies the conf file. Defaults to ${_SCRIPT_NAME}.conf."
- echo
- echo "${_indent}-${_RID_ARG}, --${_RID_ARG_NAME} value"
- echo "${_indent}Dotnet publish runtime identifier. Valid examples include:"
- echo "${_indent}linux-x64 and linux-arm64. Default is linux-x64 if unspecified."
- echo "${_indent}See also: https://docs.microsoft.com/en-us/dotnet/core/rid-catalog"
- echo
- echo "${_indent}-${_KIND_ARG}, --${_KIND_ARG_NAME} value"
- echo "${_indent}Package output kind. Value must be one of: ${_APPIMAGE_KIND} or ${_ZIP_KIND}."
- echo "${_indent}Default is ${_APPIMAGE_KIND} if unspecified."
- echo
- echo "${_indent}-${_VERBOSE_ARG}, --${_VERBOSE_ARG_NAME}"
- echo "${_indent}Verbose review info output flag."
- echo
- echo "${_indent}-${_RUNAPP_ARG}, --${_RUNAPP_ARG_NAME}"
- echo "${_indent}Run the application after successful build flag."
- echo
- echo "${_indent}-${_SKIPYES_ARG}, --${_SKIPYES_ARG_NAME}"
- echo "${_indent}Skip confirmation prompt flag (assumes yes)."
- echo
- echo "${_indent}-${_OUTPUT_ARG}, --${_OUTPUT_ARG_NAME}"
- echo "${_indent}Explicit final output filename (excluding directory part)."
- echo
-
- echo "Example:"
- echo "${_indent}${_SCRIPT_NAME} -${_RID_ARG} linux-arm64"
- echo
-
- exit $_exit_help
-fi
-
-if [ ${_version_arg_value} == true ]; then
- echo
- echo "${_SCRIPT_TITLE}, ${_SCRIPT_VERSION}"
- echo "${_SCRIPT_COPYRIGHT}"
- echo "${_SCRIPT_WEBSITE}"
- echo
- echo "MIT License"
- echo
- echo "Permission is hereby granted, free of charge, to any person obtaining a copy"
- echo "of this software and associated documentation files (the "Software"), to deal"
- echo "in the Software without restriction, including without limitation the rights"
- echo "to use, copy, modify, merge, publish, distribute, sublicense, and/or sell"
- echo "copies of the Software, and to permit persons to whom the Software is"
- echo "furnished to do so, subject to the following conditions:"
- echo
- echo "The above copyright notice and this permission notice shall be included in all"
- echo "copies or substantial portions of the Software."
- echo
- echo "THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR"
- echo "IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,"
- echo "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE"
- echo "AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER"
- echo "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,"
- echo "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE"
- echo "SOFTWARE."
- echo
-
- exit 0
-fi
-
-
-###############################
-# SOURCE & WORKING
-###############################
-
-# Export these now as may be
-# useful in an advanced config file
-export DOTNET_RID="${_rid_arg_value}"
-export PKG_KIND="${_kind_arg_value}"
-export ISO_DATE=`date +"%Y-%m-%d"`
-
-if [ ! -f "${_conf_arg_value}" ]; then
- echo "Configuration file not found: ${_conf_arg_value}"
- echo
- exit 1
-fi
-
-# Export contents to any post publish command
-set -a
-
-# Source local to PWD
-source "${_conf_arg_value}"
-set +a
-
-# For AppImage tool and backward compatibility
-export VERSION="${APP_VERSION}"
-
-
-# Then change PWD to conf file
-cd "$(dirname "${_conf_arg_value}")"
-
-
-###############################
-# SANITY
-###############################
-
-if (( ${CONF_IMPL_VERSION} < ${_SCRIPT_IMPL_MIN} )) || (( ${CONF_IMPL_VERSION} > ${_SCRIPT_IMPL_MAX} )); then
- echo "Configuration format version ${_SCRIPT_IMPL_VERSION} not compatible"
- echo "Older conf file but newer ${_SCRIPT_NAME} implementation?"
- echo "Update from: ${_SCRIPT_WEBSITE}"
- echo
- exit 1
-fi
-
-assert_mandatory "APP_MAIN" "${APP_MAIN}"
-assert_mandatory "APP_ID" "${APP_ID}"
-assert_mandatory "APP_ICON_SRC" "${APP_ICON_SRC}"
-assert_mandatory "DE_NAME" "${DE_NAME}"
-assert_mandatory "DE_CATEGORIES" "${DE_CATEGORIES}"
-assert_mandatory "PKG_OUTPUT_DIR" "${PKG_OUTPUT_DIR}"
-
-if [ "${_kind_arg_value}" == "${_APPIMAGE_KIND}" ]; then
- assert_mandatory "APPIMAGETOOL_COMMAND" "${APPIMAGETOOL_COMMAND}"
-fi
-
-assert_opt_file "APP_ICON_SRC" "${APP_ICON_SRC}"
-assert_opt_file "APP_XML_SRC" "${APP_XML_SRC}"
-
-if [ "${DE_TERMINAL_FLAG}" != "true" ] && [ "${DE_TERMINAL_FLAG}" != "false" ]; then
- echo "DE_TERMINAL_FLAG invalid value: ${DE_TERMINAL_FLAG}"
- echo
- exit 1
-fi
-
-if [ "${DOTNET_PROJECT_PATH}" == "${_DOTNET_NONE}" ] && [ "${POST_PUBLISH}" == "" ]; then
- echo "No publish or build operation defined (nothing will be built)"
- echo "See DOTNET_PROJECT_PATH and POST_PUBLISH in: ${_conf_arg_value}"
- echo
- exit 1
-fi
-
-if [ "${DOTNET_PROJECT_PATH}" != "" ] && [ "${DOTNET_PROJECT_PATH}" != "${_DOTNET_NONE}" ] &&
- [ ! -f "${DOTNET_PROJECT_PATH}" ] && [ ! -d "${DOTNET_PROJECT_PATH}" ]; then
- echo "DOTNET_PROJECT_PATH path not found: ${DOTNET_PROJECT_PATH}"
- echo
- exit 1
-fi
-
-if [ "${_kind_arg_value}" != "${_APPIMAGE_KIND}" ] && [ "${_kind_arg_value}" != "${_ZIP_KIND}" ]; then
- echo "Invalid argument value: ${_kind_arg_value}"
- echo "Use one of: ${_APPIMAGE_KIND} or ${_ZIP_KIND}"
- echo
- exit 1
-fi
-
-
-# Detect if publish for windows
-_exec_ext=""
-declare -l _tw="${_rid_arg_value}"
-
-if [[ "${_tw}" == "win"* ]]; then
-
- # May use this in future
- _exec_ext=".exe"
-
- if [ "${_kind_arg_value}" == "${_APPIMAGE_KIND}" ]; then
- echo "Invalid AppImage payload"
- echo "Looks like a windows binary to be packaged as AppImage."
- echo "Use --${_KIND_ARG_NAME} ${_ZIP_KIND} instead."
- echo
- exit 1
- fi
-fi
-
-
-###############################
-# VARIABLES
-###############################
-
-# Abbreviate RID where it maps well to arch
-if [ "${_rid_arg_value}" == "linux-x64" ]; then
- _file_out_arch="-x86_64"
-elif [ "${_rid_arg_value}" == "linux-arm64" ]; then
- _file_out_arch="-aarch64"
-else
- # Otherwise use RID itself
- _file_out_arch="-${_rid_arg_value}"
-fi
-
-# APPDIR LOCATIONS
-export APPDIR_ROOT="${PKG_OUTPUT_DIR}/AppDir"
-
-if [ "${_kind_arg_value}" == "${_APPIMAGE_KIND}" ]; then
- # AppImage
- export APPDIR_USR="${APPDIR_ROOT}/usr"
- export APPDIR_BIN="${APPDIR_ROOT}/usr/bin"
- export APPDIR_SHARE="${APPDIR_ROOT}/usr/share"
-
- _local_run="usr/bin/${APP_MAIN}${_exec_ext}"
-else
- # Simple zip
- export APPDIR_USR=""
- export APPDIR_BIN="${APPDIR_ROOT}"
- export APPDIR_SHARE="${APPDIR_ROOT}"
-
- _local_run="${APP_MAIN}${_exec_ext}"
-fi
-
-export APPRUN_TARGET="${APPDIR_BIN}/${APP_MAIN}${_exec_ext}"
-
-
-# DOTNET PUBLISH
-if [ "${DOTNET_PROJECT_PATH}" != "${_DOTNET_NONE}" ]; then
-
- _publish_cmd="dotnet publish"
-
- if [ "${DOTNET_PROJECT_PATH}" != "" ] && [ "${DOTNET_PROJECT_PATH}" != "." ]; then
- _publish_cmd="${_publish_cmd} \"${DOTNET_PROJECT_PATH}\""
- fi
-
- _publish_cmd="${_publish_cmd} -r ${_rid_arg_value}"
-
- if [ "${APP_VERSION}" != "" ]; then
- _publish_cmd="${_publish_cmd} -p:Version=${APP_VERSION}"
- fi
-
- if [ "${DOTNET_PUBLISH_ARGS}" != "" ]; then
- _publish_cmd="${_publish_cmd} ${DOTNET_PUBLISH_ARGS}"
- fi
-
- _publish_cmd="${_publish_cmd} -o \"${APPDIR_BIN}\""
-
-fi
-
-
-# PACKAGE OUTPUT
-if [ $PKG_VERSION_FLAG == true ] && [ "${APP_VERSION}" != "" ]; then
- _version_out="-${APP_VERSION}"
-fi
-
-if [ "${_kind_arg_value}" == "${_APPIMAGE_KIND}" ]; then
-
- # AppImageTool
- if [ "${_output_arg_value}" != "" ]; then
- _package_out="${PKG_OUTPUT_DIR}/${_output_arg_value}"
- else
- _package_out="${PKG_OUTPUT_DIR}/${APP_MAIN}${_version_out}${_file_out_arch}${PKG_APPIMAGE_SUFFIX}"
- fi
-
- _package_cmd="${APPIMAGETOOL_COMMAND}"
-
- if [ "${PKG_APPIMAGE_ARGS}" != "" ]; then
- _package_cmd="${_package_cmd} ${PKG_APPIMAGE_ARGS}"
- fi
-
- _package_cmd="${_package_cmd} \"${APPDIR_ROOT}\" \"${_package_out}\""
-
- if [ ${_runapp_arg_value} == true ]; then
- _packrun_cmd="${_package_out}"
- fi
-
-else
-
- # Simple zip
- if [ "${_output_arg_value}" != "" ]; then
- _package_out="${PKG_OUTPUT_DIR}/${_output_arg_value}"
- else
- _package_out="${PKG_OUTPUT_DIR}/${APP_MAIN}${_version_out}${_file_out_arch}.zip"
- fi
-
- _package_cmd="(cd \"${APPDIR_ROOT}\" && zip -r \"${PWD}/${_package_out}\" ./)"
-
- if [ ${_runapp_arg_value} == true ]; then
- _packrun_cmd="${APPRUN_TARGET}"
- fi
-
-fi
-
-
-###############################
-# DESKTOP ENTRY & APPDATA
-###############################
-
-if [ "${_kind_arg_value}" == "${_APPIMAGE_KIND}" ]; then
-
- _desktop="[Desktop Entry]\n"
- _desktop="${_desktop}Type=Application\n"
- _desktop="${_desktop}Name=${DE_NAME}\n"
- _desktop="${_desktop}Exec=AppRun\n"
- _desktop="${_desktop}Terminal=${DE_TERMINAL_FLAG}\n"
- _desktop="${_desktop}Categories=${DE_CATEGORIES}\n"
-
- # Follow app-id
- _desktop="${_desktop}Icon=${APP_ID}\n"
-
- if [ "${DE_COMMENT}" != "" ]; then
- _desktop="${_desktop}Comment=${DE_COMMENT}\n"
- fi
-
- if [ "${DE_KEYWORDS}" != "" ]; then
- _desktop="${_desktop}Keywords=${DE_KEYWORDS}\n"
- fi
-
- _desktop="${_desktop}${DE_EXTEND}\n"
-fi
-
-
-# Load appdata.xml
-if [ "${APP_XML_SRC}" != "" ]; then
-
- if command -v envsubst &> /dev/null; then
- _appxml=$(envsubst <"${APP_XML_SRC}")
- else
- _appxml=$(<"${APP_XML_SRC}")
- echo "WARNING: Variable substitution not available for: ${APP_XML_SRC}"
- echo
- fi
-
-fi
-
-
-###############################
-# DISPLAY & CONFIRM
-###############################
-
-echo "${_SCRIPT_TITLE}, ${_SCRIPT_VERSION}"
-echo "${_SCRIPT_COPYRIGHT}"
-echo
-
-echo "APP_MAIN: ${APP_MAIN}"
-echo "APP_ID: ${APP_ID}"
-echo "APP_VERSION: ${APP_VERSION}"
-echo "OUTPUT: ${_package_out}"
-echo
-
-if [ "${_desktop}" != "" ]; then
- echo -e "${_desktop}"
-fi
-
-if [ ${_verbose_arg_value} == true ] && [ "${_appxml}" != "" ]; then
- echo -e "${_appxml}\n"
-fi
-
-echo "Build Commands:"
-
-if [ "${_publish_cmd}" != "" ]; then
- echo
- echo "${_publish_cmd}"
-fi
-
-if [ "${POST_PUBLISH}" != "" ]; then
- echo
- echo "${POST_PUBLISH}"
-fi
-
-echo
-echo "${_package_cmd}"
-echo
-
-# Prompt
-if [ $_skipyes_arg_value == false ]; then
-
- echo
- read -p "Build now [N/y]? " prompt
-
- if [ "${prompt}" != "y" ] && [ "${prompt}" != "Y" ]; then
- echo
- exit 1
- fi
-
- # Continue
- echo
-fi
-
-
-###############################
-# PUBLISH & BUILD
-###############################
-
-# Clean and ensure directoy exists
-ensure_directory "${PKG_OUTPUT_DIR}"
-remove_path "${APPDIR_ROOT}"
-remove_path "${_package_out}"
-
-# Create AppDir structure
-ensure_directory "${APPDIR_BIN}"
-
-if [ "${_kind_arg_value}" != "${_ZIP_KIND}" ]; then
- # We also create usr/share/icons, as some packages require this.
- # See: https://github.com/kuiperzone/Publish-AppImage/issues/7
- ensure_directory "${APPDIR_SHARE}/icons"
-fi
-
-echo
-
-# Publish dotnet
-if [ "${_publish_cmd}" != "" ]; then
- exec_or_die "${_publish_cmd}"
- echo
-fi
-
-# Post-publish
-if [ "${POST_PUBLISH}" != "" ]; then
-
- exec_or_die "${POST_PUBLISH}"
- echo
-
-fi
-
-# Application file must exist!
-if [ ! -f "${APPRUN_TARGET}" ]; then
- echo "Expected application file not found: ${APPRUN_TARGET}"
- echo
- exit 1
-fi
-
-if [ "${_kind_arg_value}" == "${_APPIMAGE_KIND}" ]; then
-
- echo
-
- # Create desktop
- if [ "${_desktop}" != "" ]; then
- _file="${APPDIR_ROOT}/${APP_ID}.desktop"
- echo "Creating: ${_file}"
- echo -e "${_desktop}" > "${_file}"
- assert_result
- fi
-
- if [ "${_appxml}" != "" ]; then
- _dir="${APPDIR_SHARE}/metainfo"
- _file="${_dir}/${APP_ID}.appdata.xml"
- echo "Creating: ${_file}"
- ensure_directory "${_dir}"
- echo -e "${_appxml}" > "${_file}"
- assert_result
-
- if [ "${_desktop}" != "" ]; then
- # Copy of desktop under "applications"
- # Needed for launchable in appinfo.xml (if used)
- # See https://github.com/AppImage/AppImageKit/issues/603
- _dir="${APPDIR_SHARE}/applications"
- _file="${_dir}/${APP_ID}.desktop"
- echo "Creating: ${_file}"
- ensure_directory "${_dir}"
- echo -e "${_desktop}" > "${_file}"
- assert_result
- fi
- fi
-
- # Copy icon
- if [ "${APP_ICON_SRC}" != "" ]; then
-
- _icon_ext="${APP_ICON_SRC##*.}"
-
- if [ "${_icon_ext}" != "" ]; then
- _icon_ext=".${_icon_ext}"
- fi
-
- _temp="${APPDIR_ROOT}/${APP_ID}${_icon_ext}"
- echo "Creating: ${_temp}"
-
- cp "${APP_ICON_SRC}" "${_temp}"
- assert_result
- fi
-
- # AppRun
- _temp="${APPDIR_ROOT}/AppRun"
-
- if [ ! -f "${_temp}" ]; then
-
- echo "Creating: ${_temp}"
- ln -s "${_local_run}" "${_temp}"
- assert_result
- fi
-fi
-
-# Build package
-echo
-exec_or_die "${_package_cmd}"
-echo
-
-echo "OUTPUT OK: ${_package_out}"
-echo
-
-if [ "${_packrun_cmd}" != "" ]; then
- echo "RUNNING ..."
- exec_or_die "${_packrun_cmd}"
- echo
-fi
-
-exit 0
\ No newline at end of file
diff --git a/build/resources/appimage/publish-appimage.conf b/build/resources/appimage/publish-appimage.conf
deleted file mode 100644
index ea44ee3b..00000000
--- a/build/resources/appimage/publish-appimage.conf
+++ /dev/null
@@ -1,140 +0,0 @@
-################################################################################
-# BASH FORMAT CONFIG: Publish-AppImage for .NET
-# WEBPAGE : https://kuiper.zone/publish-appimage-dotnet/
-################################################################################
-
-
-########################################
-# Application
-########################################
-
-# Mandatory application (file) name. This must be the base name of the main
-# runnable file to be created by the publish/build process. It should NOT
-# include any directory part or extension, i.e. do not append ".exe" or ".dll"
-# for dotnet. Example: "MyApp"
-APP_MAIN="sourcegit"
-
-# Mandatory application ID in reverse DNS form, i.e. "tld.my-domain.MyApp".
-# Exclude any ".desktop" post-fix. Note that reverse DNS form is necessary
-# for compatibility with Freedesktop.org metadata.
-APP_ID="com.sourcegit-scm.SourceGit"
-
-# Mandatory icon source file relative to this file (appimagetool seems to
-# require this). Use .svg or .png only. PNG should be one of standard sizes,
-# i.e, 128x128 or 256x256 pixels. Example: "Assets/app.svg"
-APP_ICON_SRC="sourcegit.png"
-
-# Optional Freedesktop.org metadata source file relative to this file. It is not essential
-# (leave empty) but will be used by appimagetool for repository information if provided.
-# See for information: https://docs.appimage.org/packaging-guide/optional/appstream.html
-# NB. The file may embed bash variables defined in this file and those listed below
-# (these will be substituted during the build). Examples include: "${APP_ID}"
-# and "".
-# $ISO_DATE : date of build, i.e. "2021-10-29",
-# $APP_VERSION : application version (if provided),
-# Example: "Assets/appdata.xml".
-APP_XML_SRC="sourcegit.appdata.xml"
-
-
-########################################
-# Desktop Entry
-########################################
-
-# Mandatory friendly name of the application.
-DE_NAME="SourceGit"
-
-# Mandatory category(ies), separated with semicolon, in which the entry should be
-# shown. See https://specifications.freedesktop.org/menu-spec/latest/apa.html
-# Examples: "Development", "Graphics", "Network", "Utility" etc.
-DE_CATEGORIES="Utility"
-
-# Optional short comment text (single line).
-# Example: "Perform calculations"
-DE_COMMENT="Open-source GUI client for git users"
-
-# Optional keywords, separated with semicolon. Values are not meant for
-# display and should not be redundant with the value of DE_NAME.
-DE_KEYWORDS=""
-
-# Flag indicating whether the program runs in a terminal window. Use true or false only.
-DE_TERMINAL_FLAG=false
-
-# Optional name-value text to be appended to the Desktop Entry file, thus providing
-# additional metadata. Name-values should not be redundant with values above and
-# are to be terminated with new line ("\n").
-# Example: "Comment[fr]=Effectue des calculs compliqués\nMimeType=image/x-foo"
-DE_EXTEND=""
-
-
-########################################
-# Dotnet Publish
-########################################
-
-# Optional path relative to this file in which to find the dotnet project (.csproj)
-# or solution (.sln) file, or the directory containing it. If empty (default), a single
-# project or solution file is expected under the same directory as this file.
-# IMPORTANT. If set to "null", dotnet publish is disabled (it is NOT called). Instead,
-# only POST_PUBLISH is called. Example: "Source/MyProject"
-DOTNET_PROJECT_PATH="../../../src/SourceGit.csproj"
-
-# Optional arguments suppled to "dotnet publish". Do NOT include "-r" (runtime) or version here as they will
-# be added (see also $APP_VERSION). Typically you want as a minimum: "-c Release --self-contained true".
-# Additional useful arguments include:
-# "-p:DebugType=None -p:DebugSymbols=false -p:PublishSingleFile=true -p:PublishTrimmed=true -p:TrimMode=link"
-# Refer: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish
-DOTNET_PUBLISH_ARGS="-c Release -p:DebugType=None -p:DebugSymbols=false"
-
-
-########################################
-# POST-PUBLISH
-########################################
-
-# Optional post-publish or standalone build command. The value could, for example, copy
-# additional files into the "bin" directory. The working directory will be the location
-# of this file. The value is mandatory if DOTNET_PROJECT_PATH equals "null". In
-# addition to variables in this file, the following variables are exported prior:
-# $ISO_DATE : date of build, i.e. "2021-10-29",
-# $APP_VERSION : application version (if provided),
-# $DOTNET_RID : dotnet runtime identifier string provided at command line (i.e. "linux-x64),
-# $PKG_KIND : package kind (i.e. "appimage", "zip") provided at command line.
-# $APPDIR_ROOT : AppImage build directory root (i.e. "AppImages/AppDir").
-# $APPDIR_USR : AppImage user directory under root (i.e. "AppImages/AppDir/usr").
-# $APPDIR_BIN : AppImage bin directory under root (i.e. "AppImages/AppDir/usr/bin").
-# $APPRUN_TARGET : The expected target executable file (i.e. "AppImages/AppDir/usr/bin/app-name").
-# Example: "Assets/post-publish.sh"
-POST_PUBLISH="mv AppImages/AppDir/usr/bin/SourceGit AppImages/AppDir/usr/bin/sourcegit; rm -f AppImages/AppDir/usr/bin/*.dbg"
-
-
-########################################
-# Package Output
-########################################
-
-# Additional arguments for use with appimagetool. See appimagetool --help.
-# Default is empty. Example: "--sign"
-PKG_APPIMAGE_ARGS="--runtime-file=runtime-x86_64"
-
-# Mandatory output directory relative to this file. It will be created if it does not
-# exist. It will contain the final package file and temporary AppDir. Default: "AppImages".
-PKG_OUTPUT_DIR="AppImages"
-
-# Boolean which sets whether to include the application version in the filename of the final
-# output package (i.e. "HelloWorld-1.2.3-x86_64.AppImage"). It is ignored if $APP_VERSION is
-# empty or the "output" command arg is specified. Default and recommended: false.
-PKG_VERSION_FLAG=false
-
-# Optional AppImage output filename extension. It is ignored if generating a zip file, or if
-# the "output" command arg is specified. Default and recommended: ".AppImage".
-PKG_APPIMAGE_SUFFIX=".AppImage"
-
-
-########################################
-# Advanced Other
-########################################
-
-# The appimagetool command. Default is "appimagetool" which is expected to be found
-# in the $PATH. If the tool is not in path or has different name, a full path can be given,
-# example: "/home/user/Apps/appimagetool-x86_64.AppImage"
-APPIMAGETOOL_COMMAND="appimagetool"
-
-# Internal use only. Used for compatibility between conf and script. Do not modify.
-CONF_IMPL_VERSION=1
diff --git a/build/resources/appimage/runtime-x86_64 b/build/resources/appimage/runtime-x86_64
deleted file mode 100755
index 0c9535a1..00000000
Binary files a/build/resources/appimage/runtime-x86_64 and /dev/null differ
diff --git a/build/ci/package.linux.sh b/build/scripts/package.linux.sh
similarity index 100%
rename from build/ci/package.linux.sh
rename to build/scripts/package.linux.sh
diff --git a/build/ci/package.osx-app.sh b/build/scripts/package.osx-app.sh
similarity index 100%
rename from build/ci/package.osx-app.sh
rename to build/scripts/package.osx-app.sh
diff --git a/build/ci/package.windows-portable.sh b/build/scripts/package.windows-portable.sh
similarity index 100%
rename from build/ci/package.windows-portable.sh
rename to build/scripts/package.windows-portable.sh