Skip to content

Commit 6902e22

Browse files
Initial PupNet test
1 parent 292c035 commit 6902e22

File tree

14 files changed

+302
-20
lines changed

14 files changed

+302
-20
lines changed

.github/workflows/linux.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: .NET Build + Publish
2+
3+
on:
4+
push:
5+
branches: [main, ui-rewrite]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-22.04
12+
13+
permissions:
14+
contents: write
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
- name: Setup .NET
19+
uses: actions/setup-dotnet@v4
20+
with:
21+
dotnet-version: 9.0.x
22+
- name: Install PupNet
23+
run: dotnet tool install -g KuiperZone.PupNet
24+
- name: Download AppImageTool
25+
run: |
26+
wget -P "$HOME/AppImageTool" "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage"
27+
- name: Test AppImageTool
28+
run: |
29+
echo "$HOME/AppImageTool" >> $GITHUB_PATH
30+
appimagetool-x86_64.AppImage --version
31+
32+
# - name: Restore dependencies
33+
# run: dotnet restore
34+
# - name: Build
35+
# run: dotnet build --no-restore -p:PostBuildEvent=
36+
# - name: Publish Linux 64bit
37+
# if: ${{ github.event_name != 'pull_request' }}
38+
# run: dotnet publish --os linux --arch x64 -c Release --self-contained false MSUScripter/MSUScripter.csproj
39+
# - name: Get version number
40+
# if: ${{ github.event_name != 'pull_request' }}
41+
# id: version
42+
# run: |
43+
# $version = (Get-Item "MSUScripter\bin\Release\net9.0\win-x86\publish\MSUScripter.exe").VersionInfo.ProductVersion
44+
# $version = $version.Split("+")[0]
45+
# Write-Host $version
46+
# Write-Output "number=$version" >> $env:GITHUB_OUTPUT
47+
# shell: pwsh
48+
# - name: Upload artifact
49+
# uses: actions/upload-artifact@v4
50+
# if: ${{ github.event_name != 'pull_request' }}
51+
# with:
52+
# path: "setup/Output/*"
53+
# name: MSUScripter_${{ steps.version.outputs.number }}
Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: .NET Build + Publish
22

33
on:
44
push:
5-
branches: [main, ui-rewrite]
5+
branches: [main]
66
pull_request:
77
branches: [main]
88

@@ -29,9 +29,6 @@ jobs:
2929
- name: Publish Windows 32bit
3030
if: ${{ github.event_name != 'pull_request' }}
3131
run: dotnet publish --os win --arch x86 -c Release --self-contained false MSUScripter/MSUScripter.csproj
32-
- name: Publish Linux 64bit
33-
if: ${{ github.event_name != 'pull_request' }}
34-
run: dotnet publish --os linux --arch x64 -c Release --self-contained false MSUScripter/MSUScripter.csproj
3532
- name: Get version number
3633
if: ${{ github.event_name != 'pull_request' }}
3734
id: version
@@ -45,11 +42,6 @@ jobs:
4542
if: ${{ github.event_name != 'pull_request' }}
4643
run: '"%programfiles(x86)%/Inno Setup 6/iscc.exe" "Setup/MSUScripter.iss"'
4744
shell: cmd
48-
- name: Building the Linux 64bit package
49-
if: ${{ github.event_name != 'pull_request' }}
50-
working-directory: setup
51-
run: "./LinuxBuildZipper.ps1"
52-
shell: pwsh
5345
- name: Upload artifact
5446
uses: actions/upload-artifact@v4
5547
if: ${{ github.event_name != 'pull_request' }}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
[Desktop Entry]
2+
Type=Application
3+
Name=MSU Scripter
4+
Icon=mattequalscoder.msuscripter
5+
StartupWMClass=MSUScripter
6+
Comment=MSU Scripter
7+
Exec=/usr/bin/MSUScripter
8+
TryExec=/usr/bin/MSUScripter
9+
NoDisplay=false
10+
Terminal=true
11+
Categories=Utility;
12+
X-AppImage-Name=AppId
13+
X-AppImage-Version=AppVersion
14+
X-AppImage-Arch=PackageArch
15+
MimeType=
16+
Keywords=
57.2 MB
Binary file not shown.

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2023 MattEqualsCoder
3+
Copyright (c) 2023-2025 MattEqualsCoder
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

MSUScripter.pupnet.conf

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
2+
################################################################################
3+
# PUPNET DEPLOY: 1.9.0
4+
################################################################################
5+
6+
########################################
7+
# APP PREAMBLE
8+
########################################
9+
10+
# Mandatory application base name. This MUST BE the base name of the main executable file. It should NOT
11+
# include any directory part or extension, i.e. do not append '.exe' or '.dll'. It should not contain
12+
# spaces or invalid filename characters.
13+
AppBaseName = MSUScripter
14+
15+
# Mandatory application friendly name.
16+
AppFriendlyName = MSU Scripter
17+
18+
# Mandatory application ID in reverse DNS form. The value should stay constant for lifetime of the software.
19+
AppId = mattequalscoder.msuscripter
20+
21+
# Mandatory application version and package release of form: 'VERSION[RELEASE]'. Use optional square
22+
# brackets to denote package release, i.e. '1.2.3[1]'. Release refers to a change to the deployment
23+
# package, rather the application. If release part is absent (i.e. '1.2.3'), the release value defaults
24+
# to '1'. Note that the version-release value given here may be overridden from the command line.
25+
AppVersionRelease = 5.0.0[1]
26+
27+
# Mandatory single line application summary text in default (English) language.
28+
AppShortSummary = MSU Scripter
29+
30+
# Multi-line (surround with triple """ quotes) application description which provides longer explanation
31+
# than AppShortSummary in default language. Optional but it is recommended to specify this. Text
32+
# separated by an empty line will be treated as separate paragraphs. Avoid complex formatting, and do not
33+
# use HTML or markdown, other than list items beginning with "* ", "+ " or "- ". This content is
34+
# used by package builders where supported, including RPM and DEB, and is used to populate the
35+
# ${APPSTREAM_DESCRIPTION_XML} element used within AppStream metadata.
36+
AppDescription = """
37+
UI application for creating MSU and PCM files for custom music in various patches and randomizers
38+
of various retro games.
39+
"""
40+
41+
# Mandatory application license ID. This should be one of the recognized SPDX license
42+
# identifiers, such as: 'MIT', 'GPL-3.0-or-later' or 'Apache-2.0'. For a proprietary or
43+
# custom license, use 'LicenseRef-Proprietary' or 'LicenseRef-LICENSE'.
44+
AppLicenseId = MIT
45+
46+
# Optional path to application copyright/license text file. If provided, it will be packaged with the
47+
# application and used with package builders where supported.
48+
AppLicenseFile = LICENSE
49+
50+
# Optional path to application changelog file. IMPORTANT. If given, this file should contain version
51+
# information in a predefined format. Namely, it should contain one or more version headings of form:
52+
# '+ VERSION;DATE', under which are to be listed change items of form: '- Change description'. Formatted
53+
# information will be parsed and used to expand the ${APPSTREAM_CHANGELOG_XML} macro used
54+
# for AppStream metadata (superfluous text is ignored, so the file may also contain README information).
55+
# The given file will also be packaged with the application verbatim. See: https://github.com/kuiperzone/PupNet-Deploy.
56+
AppChangeFile =
57+
58+
########################################
59+
# PUBLISHER
60+
########################################
61+
62+
# Mandatory publisher, group or creator name.
63+
PublisherName = MattEqualsCoder
64+
65+
# Publisher ID in reverse DNS form. Invariably, this would be the same as AppId, excluding the app leaf
66+
# name. The value populates the ${PUBLISHER_ID} macro used AppStream metainfo. If omitted, defaults to
67+
# the leading parts of AppId. It is highly recommended to specify the value explicitly.
68+
PublisherId = mattequalscoder
69+
70+
# Optional copyright statement.
71+
PublisherCopyright = Copyright (C) MattEqualsCoder 2023-25
72+
73+
# Optional publisher or application web-link name. Note that Windows Setup packages
74+
# require both PublisherLinkName and PublisherLinkUrl in order to include the link as
75+
# an item in program menu entries. Do not modify name, as may leave old entries in updated installations.
76+
PublisherLinkName = Home Page
77+
78+
# Publisher or application web-link URL. Although optional, it should be considered mandatory if using
79+
# MetaFile
80+
PublisherLinkUrl = https://github.com/MattEqualsCoder
81+
82+
# Publisher or maintainer email contact. Although optional, some package builders (i.e. DEB) require it
83+
# and may warn or fail unless provided.
84+
PublisherEmail = [email protected]
85+
86+
########################################
87+
# DESKTOP INTEGRATION
88+
########################################
89+
90+
# Boolean (true or false) which indicates whether the application is hidden on the desktop. It is used to
91+
# populate the 'NoDisplay' field of the .desktop file. The default is false. Setting to true will also
92+
# cause the main application start menu entry to be omitted for Windows Setup.
93+
DesktopNoDisplay = false
94+
95+
# Boolean (true or false) which indicates whether the application runs in the terminal, rather than
96+
# providing a GUI. It is used to populate the 'Terminal' field of the .desktop file.
97+
DesktopTerminal = false
98+
99+
# Optional path to a Linux desktop file. If empty (default), one will be generated automatically from
100+
# the information in this file. Supplying a custom file, however, allows for mime-types and
101+
# internationalisation. If supplied, the file MUST contain the line: 'Exec=${INSTALL_EXEC}'
102+
# in order to use the correct install location. Other macros may be used to help automate the content.
103+
# Note. PupNet Deploy can generate you a desktop file. Use --help and 'pupnet --help macro' for reference.
104+
# See: https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
105+
DesktopFile =
106+
107+
# Optional command name to start the application from the terminal. If, for example, AppBaseName is
108+
# 'Zone.Kuiper.HelloWorld', the value here may be set to a simpler and/or lower-case variant such as
109+
# 'helloworld'. It must not contain spaces or invalid filename characters. Do not add any extension such
110+
# as '.exe'. If empty, the application will not be in the path and cannot be started from the command line.
111+
# For Windows Setup packages, see also SetupCommandPrompt. StartCommand is not
112+
# supported for all packages kinds (i.e. Flatpak). Default is empty (none).
113+
StartCommand = MSUScripter
114+
115+
# Optional category for the application. The value should be one of the recognized Freedesktop top-level
116+
# categories, such as: Audio, Development, Game, Office, Utility etc. Only a single value should be
117+
# provided here which will be used, where supported, to populate metadata. The default is empty.
118+
# See: https://specifications.freedesktop.org/menu-spec/latest/apa.html
119+
PrimeCategory = Utility
120+
121+
# Path to AppStream metadata file. It is optional, but recommended as it is used by software centers.
122+
# Note. The contents of the files may use macro variables. Use 'pupnet --help macro' for reference.
123+
# See: https://docs.appimage.org/packaging-guide/optional/appstream.html
124+
# MetaFile = Deploy/app.metainfo.xml
125+
126+
# Optional icon file paths. The value may include multiple filenames separated with semicolon or given
127+
# in multi-line form. Valid types are SVG, PNG and ICO (ICO ignored on Linux). Note that the inclusion
128+
# of a scalable SVG is preferable on Linux, whereas PNGs must be one of the standard sizes and MUST
129+
# include the size in the filename in the form: name.32x32.png' or 'name.32.png'.
130+
IconFiles = """
131+
MSUScripter/MSUScripterIcon.ico
132+
MSUScripter/Assets/icon.256.png
133+
MSUScripter/Assets/icon.128.png
134+
MSUScripter/Assets/icon.64.png
135+
MSUScripter/Assets/icon.32.png
136+
MSUScripter/Assets/icon.24.png
137+
MSUScripter/Assets/icon.16.png
138+
MSUScripter/Assets/icon.svg
139+
"""
140+
141+
########################################
142+
# DOTNET PUBLISH
143+
########################################
144+
145+
# Optional path relative to this file in which to find the dotnet project (.csproj) file, or the
146+
# directory containing it. If empty (default), a single project file is expected under the same
147+
# directory as this file. IMPORTANT. If set to 'NONE', dotnet publish is disabled
148+
# (i.e. not called). Instead, only DotnetPostPublish is called.
149+
DotnetProjectPath = MSUScripter
150+
151+
# Optional arguments supplied to 'dotnet publish'. Do NOT include '-r' (runtime), or '-c' (configuration)
152+
# here as they will be added according to command line arguments. Typically you want as a minimum:
153+
# '-p:Version=${APP_VERSION} --self-contained true'. Additional useful arguments include:
154+
# '-p:DebugType=None -p:DebugSymbols=false -p:PublishSingleFile=true -p:PublishReadyToRun=true
155+
# -p:PublishTrimmed=true -p:TrimMode=link'. Note. This value may use macro variables. Use 'pupnet --help macro'
156+
# for reference. See: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish
157+
DotnetPublishArgs = -p:Version=${APP_VERSION} --self-contained true -p:DebugType=None -p:DebugSymbols=false
158+
159+
########################################
160+
# PACKAGE OUTPUT
161+
########################################
162+
163+
# Optional package name (excludes version etc.). If empty, defaults to AppBaseName. However, it is
164+
# used not only to specify the base output filename, but to identify the application in DEB and RPM
165+
# packages. You may wish, therefore, to ensure that the value represents a unique name. Naming
166+
# requirements are strict and must contain only alpha-numeric and '-', '+' and '.' characters.
167+
PackageName = MSUScripter
168+
169+
# Output directory, or subdirectory relative to this file. It will be created if it does not exist and
170+
# will contain the final deploy output files. If empty, it defaults to the location of this file.
171+
OutputDirectory = Deploy/OUT
172+
173+
########################################
174+
# APPIMAGE OPTIONS
175+
########################################
176+
177+
# Additional arguments for use with appimagetool, i.e. '--no-appstream' to disable pedantic metadata checking.
178+
# Use for signing with '--sign'. Default is empty.
179+
AppImageArgs =
180+
181+
# Optional path to AppImage fuse runtime(s), but not to be confused with .NET runtime ID. If AppImageRuntimePath is
182+
# left empty (default), appimagetool will download the latest runtime automatically. Specifying a path here avoids
183+
# the need for an internet connection during build, and fixes the runtime version. If AppImageRuntimePath
184+
# points to a file, the value is supplied directly to appimagetool using '--runtime-file'. If it points to a
185+
# directory, the directory should contain expected runtimes, which will be selected for the target architecture,
186+
# namely one of: runtime-aarch64, runtime-armhf, runtime-i686 or runtime-x86_64. Runtimes can be downloaded:
187+
# https://github.com/AppImage/type2-runtime/releases
188+
AppImageRuntimePath =
189+
190+
# Boolean (true or false) which sets whether to include the application version in the AppImage filename,
191+
# i.e. 'HelloWorld-1.2.3-x86_64.AppImage'. Default is false. It is ignored if the output filename is
192+
# specified at command line.
193+
AppImageVersionOutput = false
194+
195+
196+
FlatpakPlatformRuntime = ab
197+
FlatpakPlatformSdk = ab
198+
FlatpakPlatformVersion = ab
199+
SetupMinWindowsVersion = ab

MSUScripter/Assets/icon.128.png

666 Bytes
Loading

MSUScripter/Assets/icon.16.png

379 Bytes
Loading

MSUScripter/Assets/icon.24.png

389 Bytes
Loading

MSUScripter/Assets/icon.256.png

1.34 KB
Loading

0 commit comments

Comments
 (0)