-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrecipes-create.sh
110 lines (91 loc) · 2.93 KB
/
recipes-create.sh
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
109
110
#!/bin/bash
# -- variables --
conan_remote="duckstax"
result="result.txt"
tmp="tmp.txt"
file="req-seq.txt"
uploaded_packages="uploaded_packages.txt"
error_lib="error.txt"
# -- functions --
# preparation of the "result.txt" file with the packages required for upload
function prepare-result-file() {
conan search -r=$conan_remote "*" > $tmp
sed -i 1d $tmp
for str in $(cat $tmp)
do
if grep -q "/" <<< $str; then
echo $str >> $uploaded_packages
fi
done
if test -f $uploaded_packages; then
grep -F -x -v -f $uploaded_packages $file > $result
rm $uploaded_packages
else
cat $file > $result
fi
rm $tmp
sed -i '/^$/d' $result
}
# package name and version as an arg package_name/version --
function create-package() {
if ! [[ "$1" ]]
then
echo " empty package_name/version was passed "
return
else
lib=$1
delimeter="/"
package_name=${lib%$delimeter*}
package_version=${lib#*$delimeter}
#conan create recipes/"$package_name"/*/ --name $package_name --version $package_version # conan 2.0
conan create recipes/"$package_name"/*/ "${lib}@duckstax/stable"
fi
}
function check-result() {
conan list "*" > $tmp
sed -i 1d $tmp
for str in $(cat $tmp)
do
if grep -q "/" <<< $str; then
echo $str >> $uploaded_packages
fi
done
echo "recipes_create_result=phbc" > .create_result_tmp
echo -e "\033[31m \nError packages: \033[0m"
if test -f $uploaded_packages; then
grep -F -x -v -f $uploaded_packages $result > $error_lib
rm $uploaded_packages
sed -i '/^$/d' $error_lib
cat $error_lib
if [ -s $error_lib ]
then
echo "recipes_create_result=err" > .create_result_tmp
fi
else
cat $result
if [ -s $result ]
then
echo "recipes_create_result=err" > .create_result_tmp
fi
fi
rm $tmp
}
# -- main execution --
prepare-result-file
if ! [[ -s ${result} ]]
then
echo -e "\033[32m -> There were nothing to upload, all the required packages are already uploaded. \033[0m"
echo "recipes_create_result=ntu" > .create_result_tmp
else
echo -e "\033[32m Packages would be uploaded: \033[0m"
cat $result
echo -e "\033[32m --------------------------- \033[0m"
for dir in $(cat $result)
do
create-package $dir
done
#echo -e "\033[32m Created packages: \033[0m"
#conan list "*" # conan 2.0
#check-result
#echo -e "\033[32m Script finished. \033[0m"
fi