Repository navigation
Expand file tree
/
Copy pathios_upload
More file actions
executable file
·55 lines (48 loc) · 2.2 KB
/
Copy pathios_upload
File metadata and controls
executable file
·55 lines (48 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash
set -euo pipefail
# ------------------------------------------------------------------------------
# Upload .ipa file ($1) with qualified id ($2) to my server using SSH,
# to easily install on test iOS devices.
#
# Hint: you can use $(castle-engine output qualified-name-ios) to get
# the iOS qualified name of current project. So you don't need to hardcode it.
#
# Put the IPA on a web server, https, alongside a manifest like this
# https://github.com/SignTools/ota-me/blob/master/manifest.xml
# and open with Safari on an iOS device.
# In case of Michalis, I put this on URL visible below, with a secret part:)
# ------------------------------------------------------------------------------
UPLOAD_FILE="$1"
UPLOAD_FILE_BASENAME=$(basename "${UPLOAD_FILE}")
UPLOAD_TARGET='ios-uploads@michalis.xyz:/home/ios-uploads/uploads/'
MY_TEMP=/tmp/
# On Windows (Cygwin): Make TEMP_DIR path compatible with native tools too,
# if wget and/or scp are native.
if command -v cygpath > /dev/null 2>&1; then
MY_TEMP="$(cygpath --mixed "${MY_TEMP}")"
fi
QUALIFIED_NAME="$2"
QUALIFIED_NAME_FILE="${MY_TEMP}qualified_name-temp-$$.txt"
echo "${QUALIFIED_NAME}" > "${QUALIFIED_NAME_FILE}"
scp "${UPLOAD_FILE}" "${UPLOAD_TARGET}"
scp "${QUALIFIED_NAME_FILE}" "${UPLOAD_TARGET}${UPLOAD_FILE_BASENAME}.qualified_name.txt"
echo "Done uploading:
- IPA file: ${UPLOAD_FILE}
- Qualified name: ${QUALIFIED_NAME}
- Uploaded to: ${UPLOAD_TARGET}"
# Test (you have to set IOS_UPLOADS_SECRET before script runs to see this)
if [ -n "${IOS_UPLOADS_SECRET:-}" ]; then
TEMP_DIR="${MY_TEMP}ios_upload_test_$$"
mkdir -p "${TEMP_DIR}"
wget "https://michalis.xyz/iostest-${IOS_UPLOADS_SECRET}/uploads/${UPLOAD_FILE_BASENAME}" \
--quiet --output-document="${TEMP_DIR}/test.ipa"
wget "https://michalis.xyz/iostest-${IOS_UPLOADS_SECRET}/uploads/${UPLOAD_FILE_BASENAME}.qualified_name.txt" \
--quiet --output-document="${TEMP_DIR}/test.qualified_name.txt"
echo "Downloaded test files to ${TEMP_DIR}, comparing"
diff "${UPLOAD_FILE}" "${TEMP_DIR}/test.ipa"
diff "${QUALIFIED_NAME_FILE}" "${TEMP_DIR}/test.qualified_name.txt"
echo "Comparison done, all OK."
rm -rf "${TEMP_DIR}"
else
echo "IOS_UPLOADS_SECRET is not set, skipping test."
fi