diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-09-04 16:23:20 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-09-04 16:23:20 +0200 |
| commit | e4055a06b396c98ee386d16cf2dd26b5d2ec603a (patch) | |
| tree | 4f1b444da2ae871030d797cb7ec6fad526f8c32a | |
| parent | 0b61369240ad0a68322146796721055aca07428a (diff) | |
| -rw-r--r-- | Info.plist | 2 | ||||
| -rw-r--r-- | Makefile | 28 | ||||
| -rw-r--r-- | builds/Flat Bezel.qsplugin-1.1.0.zip | bin | 0 -> 50563 bytes | |||
| -rwxr-xr-x | scripts/build.sh | 15 | ||||
| -rwxr-xr-x | scripts/notarize.sh | 18 | ||||
| -rwxr-xr-x | scripts/package.sh | 23 | ||||
| -rwxr-xr-x | scripts/sign.sh | 26 | ||||
| -rwxr-xr-x | scripts/upload.sh | 22 |
8 files changed, 120 insertions, 14 deletions
@@ -19,7 +19,7 @@ <key>CFBundleShortVersionString</key> <string>$(MARKETING_VERSION)</string> <key>CFBundleVersion</key> - <string>19</string> + <string>1B</string> <key>QSPlugIn</key> <dict> <key>author</key> @@ -1,7 +1,31 @@ +project_name := Flat Bezel.qsplugin +build_directory := builds configuration = Debug -quicksilver_path = "../../vendor/Quicksilver/Quicksilver/" +quicksilver_directory = "../../vendor/Quicksilver/Quicksilver/" +quicksilver_build_directory = "/tmp/QS/build" +deploy_host := deploy@conchos.bdr.sh +deploy_path := /srv/http/build.r.bdr.sh/FlatBezel.qsplugin + +distribute: build package notarize repackage sign_distributable upload default: build build: - configuration=$(configuration) quicksilver_path=$(quicksilver_path) ./scripts/build.sh + configuration=$(configuration) quicksilver_directory=$(quicksilver_directory) ./scripts/build.sh + +package: + @scripts/package.sh "$(project_name)" "$(build_directory)" "$(quicksilver_build_directory)/$(configuration)" + +repackage: + @scripts/package.sh "$(project_name)" "$(build_directory)" "$(quicksilver_build_directory)/$(configuration)" + +notarize: + @scripts/notarize.sh "$(project_name)" "$(build_directory)" "$(quicksilver_build_directory)/$(configuration)" + +sign_distributable: + @scripts/sign.sh "$(project_name)" "$(build_directory)" "$(quicksilver_build_directory)/$(configuration)" + +upload: + @scripts/upload.sh "$(project_name)" "$(build_directory)" "$(quicksilver_build_directory)/$(configuration)" "$(deploy_host):$(deploy_path)" + +.PHONY: build package repackage notarize distribute sign_distributable diff --git a/builds/Flat Bezel.qsplugin-1.1.0.zip b/builds/Flat Bezel.qsplugin-1.1.0.zip Binary files differnew file mode 100644 index 0000000..e224681 --- /dev/null +++ b/builds/Flat Bezel.qsplugin-1.1.0.zip diff --git a/scripts/build.sh b/scripts/build.sh index 1ae8203..dd48ea3 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -3,8 +3,8 @@ set -e echo "Starting build with configuration ${configuration}" > /dev/stderr -echo "Quicksilver path is: ${quicksilver_path}" > /dev/stderr -pushd "${quicksilver_path}" +echo "Quicksilver directory is: ${quicksilver_directory}" > /dev/stderr +pushd "${quicksilver_directory}" echo "Starting build at `pwd`" > /dev/stderr xcodebuild \ -quiet \ @@ -22,14 +22,7 @@ xcodebuild \ build echo "Build complete, signing." > /dev/stderr -output_path="/tmp/QS/build/Release/Quicksilver.app/Contents/PlugIns/" +output_directory="/tmp/QS/build/Release/Quicksilver.app/Contents/PlugIns/" plugin_name="Flat Bezel.qsplugin" -codesign --force -vvv --deep --sign ${SIGNING_IDENTITY} "${output_path}${plugin_name}" - -echo "Signing complete, archiving." > /dev/stderr -archive_name="Flat_Bezel.qsplugin.tar.gz" -pushd "${output_path}" -tar -czvf "${archive_name}" "${plugin_name}" -popd -mv "${output_path}${archive_name}" . +codesign --force -vvv --deep --sign ${SIGNING_IDENTITY} "${output_directory}${plugin_name}" echo "Done." > /dev/stderr diff --git a/scripts/notarize.sh b/scripts/notarize.sh new file mode 100755 index 0000000..410c851 --- /dev/null +++ b/scripts/notarize.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set -e + +if [ "$#" -ne 3 ]; then + echo "Usage: $0 <project_name> <build_directory> <quicksilver_directory>" + exit 1 +fi + +project_name="$1" +build_directory="$2" +quicksilver_directory="$3" + +plugin_path="${quicksilver_directory}/Quicksilver.app/Contents/Plugins/${project_name}" +plugin_version=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${plugin_path}/Contents/Info.plist") +zip_path="${build_directory}/${project_name}-${plugin_version}.zip" +xcrun notarytool submit "${zip_path}" --wait --verbose --keychain-profile "Apps @ Unlimited Pizza" +stapler staple "${plugin_path}" diff --git a/scripts/package.sh b/scripts/package.sh new file mode 100755 index 0000000..a8a1eb1 --- /dev/null +++ b/scripts/package.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +set -e + +if [ "$#" -ne 3 ]; then + echo "Usage: $0 <project_name> <build_directory> <quicksilver_directory>" + exit 1 +fi + +project_name="$1" +build_directory="$2" +quicksilver_directory="$3" + +plugin_path="${quicksilver_directory}/Quicksilver.app/Contents/Plugins/${project_name}" +plugin_version=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${plugin_path}/Contents/Info.plist") +tmp_dir=$(mktemp -d) +zip_name="${project_name}-${plugin_version}.zip" +cp -R "${plugin_path}" "${tmp_dir}" +pushd "${tmp_dir}" +zip -r "${zip_name}" . +popd +cp "${tmp_dir}/${zip_name}" "${build_directory}" +rm -rf "${tmp_dir}" diff --git a/scripts/sign.sh b/scripts/sign.sh new file mode 100755 index 0000000..73e00f5 --- /dev/null +++ b/scripts/sign.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +set -e + +if [ "$#" -ne 3 ]; then + echo "Usage: $0 <project_name> <build_directory> <quicksilver_directory>" + exit 1 +fi + +project_name="$1" +build_directory="$2" +quicksilver_directory="$3" + +plugin_path="${quicksilver_directory}/Quicksilver.app/Contents/Plugins/${project_name}" +plugin_version=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${plugin_path}/Contents/Info.plist") +build_number=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${plugin_path}/Contents/Info.plist") +zip_path="${build_directory}/${project_name}-${plugin_version}.zip" + +base_zip_name=$(basename "${zip_path}") +COMMENT="Version: ${plugin_version}, File: ${base_zip_name} Built on: $(date +'%Y-%m-%d %H:%M')" + +if [ -f ~/.minisign/minisign.pass ]; then + cat ~/.minisign/minisign.pass | minisign -Sm "${zip_path}" -t "${COMMENT}" +else + minisign -Sm "${zip_path}" -t "${COMMENT}" +fi diff --git a/scripts/upload.sh b/scripts/upload.sh new file mode 100755 index 0000000..a2881c5 --- /dev/null +++ b/scripts/upload.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -e + + +if [ "$#" -ne 4 ]; then + echo "Usage: $0 <project_name> <build_directory> <quicksilver_directory> <upload_location>" + exit 1 +fi + +project_name="$1" +build_directory="$2" +quicksilver_directory="$3" +upload_location="$4" + +plugin_path="${quicksilver_directory}/Quicksilver.app/Contents/Plugins/${project_name}" +plugin_version=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${plugin_path}/Contents/Info.plist") +zip_path="${build_directory}/${project_name}-${plugin_version}.zip" + +echo "Uploading ${zip_path} to ${upload_location}" +rsync -avz "${zip_path}" "${upload_location}" +rsync -avz "${zip_path}".minisig "${upload_location}" |