This repository was archived by the owner on Jun 5, 2024. It is now read-only.
forked from saltstack/salt-bootstrap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathputs3
executable file
·108 lines (107 loc) · 4.06 KB
/
puts3
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/usr/bin/env bash
## A simple script for uploading files to preconfigured s3 bucket by [email protected]
dsturl="s3://bucketname"
srcname="saltstrap"
vernum="1.0"
srcfile="$srcname-v${vernum}.tar.gz"
if [ $# -lt 1 ]; then
echo "Usage: puts3 s3://bucketname/newname srcname" >&2
echo " puts3 s3://bucketname/salt-bootstrap.sh saltstrap.sh"
echo " puts3 --tarball s3://bucketname/$srcname-v${vernum}.tar.gz"
echo " puts3 --name srcname --vernum 1.2 --tarball s3://bucketname/newname.tar.gz"
exit 1
elif iscommand s3cmd 2>/dev/null && [ -f "$HOME/.s3cfg" ]; then
while [ $# -gt 0 ]; do
case "$1" in
--name | --srcname)
shift
srcname="$1"
shift
;;
--vernum | --srcver)
shift
vernum="$1"
shift
;;
--tarball)
shift
srcfile="$srcname-v${vernum}.tar.gz"
if [ $# -lt 1 ]; then
dsturl="$dsturl/$srcfile"
else
case "$1" in
s3://*)
dstfile="$(basename $(echo "$1" | awk -F@ '{print $NF}' | grep / 2>/dev/null | cut -d/ -f2- | cut -d? -f1 | cut -d# -f1 | cut -d "&" -f1) 2>/dev/null)"
if [ -z "$dstfile" ]; then
dsturl="$1/$srcfile"
shift
else
dsturl="$1"
shift
fi
;;
*.tar.gz)
dsturl="$dsturl/$1"
shift
;;
-- | *)
if [ -n "$1" ]; then
dstfile="$1"'.tar.gz'
shift
dsturl="$dsturl/$dstfile"
fi
;;
esac
fi
[ -d ".git" ] && git archive --format=tar.gz "$(git symbolic-ref --short HEAD)" > "$(pwd)/$srcfile" || echo "This is NOT a git repo." && ls -l
;;
s3://*)
if [ $# -lt 2 ]; then
echo "2 arguments are required but only gets 1."
exit 1
else
dstfile="$(basename $(echo "$1" | awk -F@ '{print $NF}' | grep / 2>/dev/null | cut -d/ -f2- | cut -d? -f1 | cut -d# -f1 | cut -d "&" -f1) 2>/dev/null)"
if [ -z "$dstfile" ]; then
[ -f "$(pwd)/$2" ] && srcfile="$2" || echo "Cannot find source file $2" >&2 && exit 1
dsturl="$1/$srcfile"
else
dsturl="$1"
srcfile="$2"
fi
shift 2
fi
;;
-- | *)
if [ $# -eq 1 ]; then
if [ -f "$(pwd)/$1" ]; then
srcfile="$1"
else
echo "Cannot find $1, abort releasing ..." >&2
exit 1
fi
dsturl="$dsturl/$srcfile"
shift
elif [ $# -ge 2 ]; then
dsturl="$dsturl/$1"
if [ -f "$(pwd)/$2" ]; then
srcfile="$2"
else
echo "Cannot find $2, abort releasing ..." >&2
exit 1
fi
shift 2
fi
;;
esac
done
echo "Uploading $srcfile to $dsturl ... ..."
if [ -f "$(pwd)/$srcfile" ]; then
s3cmd put "$(pwd)/$srcfile" "$dsturl"
else
echo "Cannot find $2, abort releasing ..." >&2
exit 1
fi
else
echo "Please install s3cmd and run s3cmd --configure to apply s3 bucket credentials." >&2
exit 1
fi