diff --git a/AppDir/s2pk.desktop b/AppDir/s2pk.desktop
new file mode 100644
index 0000000..c92b910
--- /dev/null
+++ b/AppDir/s2pk.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=s2pk
+Exec=s2pk
+Icon=s2pk
+Type=Application
+Categories=Utility;
+Terminal=true
diff --git a/Makefile b/Makefile
index f3f883a..6c523d7 100644
--- a/Makefile
+++ b/Makefile
@@ -5,8 +5,9 @@ CONFIGURATION = Release
RUNTIME_LINUX = linux-x64
RUNTIME_MAC = osx-x64
OUTPUT_DIR = ./dist
+APPIMAGE_DIR = ./AppDir
-.PHONY: all clean build-linux build-mac package-linux package-mac
+.PHONY: all clean build-linux build-mac build-appimage package-linux package-mac package-appimage
all: build-linux build-mac package-linux package-mac
@@ -16,6 +17,9 @@ clean:
build-linux:
dotnet publish -c $(CONFIGURATION) -r $(RUNTIME_LINUX) --self-contained true /p:PublishSingleFile=true -o $(OUTPUT_DIR)/$(APP_NAME)-linux
+build-appimage:
+ dotnet publish -c $(CONFIGURATION) -r $(RUNTIME_LINUX) --self-contained true /p:PublishSingleFile=true -o $(APPIMAGE_DIR)/usr/bin
+
build-mac:
dotnet publish -c $(CONFIGURATION) -r $(RUNTIME_MAC) --self-contained true /p:PublishSingleFile=true -o $(OUTPUT_DIR)/$(APP_NAME)-mac
@@ -24,3 +28,6 @@ package-linux:
package-mac:
tar -czvf $(OUTPUT_DIR)/$(APP_NAME)-mac.tar.gz -C $(OUTPUT_DIR)/$(APP_NAME)-mac .
+
+package-appimage:
+ appimage-builder
diff --git a/S2PK.csproj b/S2PK.csproj
index 9adff19..bfe7c8e 100644
--- a/S2PK.csproj
+++ b/S2PK.csproj
@@ -8,6 +8,7 @@
enable
Tony Bark
true
+ s2pk
s2pk
s2pk
diff --git a/appimage-builder.yml b/appimage-builder.yml
new file mode 100644
index 0000000..1b4151c
--- /dev/null
+++ b/appimage-builder.yml
@@ -0,0 +1,18 @@
+version: 1
+AppDir:
+ path: ./AppDir
+ app_info:
+ id: com.tonybark.s2pk
+ name: s2pk
+ icon: s2pk
+ version: 0.3.101
+ exec: usr/bin/s2pk
+ exec_args: ""
+ runtime:
+ env:
+ PATH: "$APPDIR/usr/bin:$PATH"
+
+recipe:
+ AppImage:
+ arch: x86_64
+ output: s2pk-x86_64.AppImage