54 lines
1.5 KiB
Bash
Executable File
54 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
TMP_DIR=/tmp/crpgp
|
|
TMP_LIB_PATH=$TMP_DIR/libcrpgp.so
|
|
TMP_HEADER_PATH=$TMP_DIR/crpgp.h
|
|
CRPGP_DIR=$HOME/.vmodules/incubaid/herolib.crypt.crpgp
|
|
V_CRPGP_PATH=$CRPGP_DIR/crpgp.v
|
|
|
|
# mkdir TMP_DIR
|
|
mkdir -p $TMP_DIR
|
|
|
|
# Download crpgp lib and header file
|
|
echo "- Download libcrpgp.so"
|
|
curl -L https://github.com/threefoldtech/crpgp/releases/download/v0.0.1/libcrpgp.so --output $TMP_LIB_PATH
|
|
echo "- Download crpgp.h"
|
|
curl -L https://github.com/threefoldtech/crpgp/releases/download/v0.0.1/crpgp.h --output $TMP_HEADER_PATH
|
|
echo "✅ Downloaded!"
|
|
# Update crpgp.v (if herolib in vmodules)
|
|
if [ -d $CRPGP_DIR ]; then
|
|
echo "- Updating crpgp.v ..."
|
|
echo -e 'module crpgp\n' >$V_CRPGP_PATH
|
|
cat $TMP_HEADER_PATH |
|
|
egrep -o 'struct [a-zA-Z_]+' |
|
|
sort | uniq |
|
|
sed 's/struct \([a-zA-Z]*\)/struct C.\1 {}\nstruct \1 {\n internal \&C.\1\n}/g' \
|
|
>>$V_CRPGP_PATH
|
|
|
|
cat $TMP_HEADER_PATH |
|
|
sed -z 's/\n\s\s\s*/ /g' |
|
|
grep ');' |
|
|
sed 's/ [*]/* /g' |
|
|
sed 's/ [a-z_][a-z_]*[)]/\)/g' |
|
|
sed 's/struct \([a-zA-Z_]*\)[*]/\&C.\1/g' |
|
|
sed 's/struct \([a-zA-Z_]*\)/C.\1/g' |
|
|
sed -z 's/ [a-z_]*,/,/g' |
|
|
sed 's/^\([^ ]*\) \(.*\);$/fn C.\2 \1/g' |
|
|
sed 's/uint8_t/u8/g' |
|
|
sed 's/size_t/u64/g' |
|
|
sed 's/\([a-zA-Z0-9]*\)[*]/\&\1/g' |
|
|
sed 's/[(]void[)]/()/g' \
|
|
>>$V_CRPGP_PATH
|
|
echo "✅ Updated!"
|
|
else
|
|
echo "- Herolib not found"
|
|
fi
|
|
|
|
# Move crpgp lib and header file in system dirs
|
|
sudo mv $TMP_LIB_PATH /usr/lib
|
|
sudo mv $TMP_HEADER_PATH /usr/include
|
|
|
|
# Delete tmp files
|
|
rm -rf $TMP_DIR
|
|
|
|
echo "✅ Installation Done!"
|