-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.sh
More file actions
61 lines (55 loc) · 1.54 KB
/
main.sh
File metadata and controls
61 lines (55 loc) · 1.54 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
56
57
58
59
60
61
export WORKSPACE=$GITHUB_WORKSPACE
GO_PD=$WORKSPACE/bin/go-pd
LINK=$1
TOKEN=$2
chmod +x "$GO_PD"
#Clean The Link Before Assiging Filename
CLEAN_LINK="${LINK%%\?*}"
CLEAN_LINK="${CLEAN_LINK%%\#*}"
FILENAME=$(basename "$CLEAN_LINK")
#Helper Methods
download() {
wget --show-progress --progress=bar:force:noscroll -O "$2" "$1"
}
create_release() {
local FILE_NAME="$1"
local PIXELDRAIN_LINK="$2"
local TAG_NAME="${FILE_NAME%.*}"
if [[ -z "$GITHUB_TOKEN" ]]; then
echo "GITHUB_TOKEN is not set. Cannot create release."
exit 1
fi
FILE_SIZE=$(du -h "$FILE_NAME" | awk '{print $1}')
echo "Creating GitHub release: $FILE_NAME"
local NOTES
NOTES=$(printf "Download link: %s\nFile size: %s\n" "$PIXELDRAIN_LINK" "$FILE_SIZE")
gh release create "${TAG_NAME}_${TIMESTAMP}" \
--title "$TAG_NAME" \
--notes "$NOTES" \
--latest \
"$FILE_NAME"
}
upload() {
local FILE_PATH="$1"
if [[ -z "$TOKEN" ]]; then
echo "TOKEN is not set. Skipping File upload."
exit 1
fi
echo "Uploading file: $FILE_PATH"
UPLOAD_LINK=$($GO_PD upload -k "$TOKEN" "$FILE_PATH")
echo "Upload Link: $UPLOAD_LINK"
}
#Download File from Given Link.
if download "$LINK" "$FILENAME"; then
echo "File downloaded successfully: $FILENAME"
else
echo "Failed to download file: $LINK"
exit 1
fi
#Upload File From the $WORKSPACE.
upload "$FILENAME"
#Create Github Release.
if [[ ! -z $UPLOAD_LINK ]]; then
echo "File is Uploaded on: $UPLOAD_LINK"
create_release "$FILENAME" "$UPLOAD_LINK"
fi