#!/bin/bash ZPROFILEDIR="$WORKDIR/profile" TEMP="/tmp/aktmp" if [ ! -d $ZPROFILEDIR ]; then mkdir $ZPROFILEDIR cd $ZPROFILEDIR git init # echo "Profile repository" > README # echo "Qmetc" >> README # git add README # git commit -m "Initiated profile repository" logthis "[INFO]" "zprofiledir created along with git repo" else logthis "[INFO]" "zprofiledir found" fi tempassin(){ if [ ! -z $1 ] then TEMPASSIN="$1" else TIMESTAMP="$(date -u +%s)" TEMPASSIN="/tmp/aktmp_$TIMESTAMP" fi if [ ! -d $TEMPASSIN ]; then mkdir $TEMPASSIN fi cd $TEMPASSIN echo "$TEMPASSIN" } # This is working with DATA blocks. DATA that matched profile/add ACTION # show(){ if [ ! -z $1 ] then logthis "[INFO]" "Working with $1" echo '"data":"'$1'",' echo '"'$1'":'$(ipfs cat $1)',' #ipfs cat $1 else echo "No DATA provided" exit 1 fi } propget(){ if [ ! -z $1 ] then if [ ! -f $ZPROFILEDIR/$1 ] then echo "property not found" else cat $ZPROFILEDIR/$1 fi else echo "No particular property... indexing" index fi } propwrite(){ cat > $ZPROPERTY_FILE << EOF { "$ZPROPERTY_KEY":"${ZPROPERTY_VALUE}" } EOF if [ $? == 0 ] then echo "Added successfully... proceeding" # add $ZPROPERTY_FILE IPFS_FILE=$(ipfs add -q $ZPROPERTY_FILE) echo "Prop writting,,, $IPFS_FILE" # mv $PROFILE_FILE $ZPROFILEDIR/$TO_FILE # sed -e 's,Qm.*,'"$IPFS_FILE"',g' $ZPROFILEDIR/README add $ZPROPERTY_KEY echo "Adding to git repo..." cd $ZPROFILEDIR git add $ZPROPERTY_KEY git commit -m "Added ${ZPROPERTY_KEY} with ${ZPROPERTY_VALUE}" git clean --force else echo "error" exit 244 fi } propset(){ if [ ! -z $1 ] then ZPROPERTY_FILE="$ZPROFILEDIR/$1" ZPROPERTY_KEY="$1" if [ ! -f $ZPROPERTY_FILE ] then echo "No such property: $ZPROPERTY_KEY ... creating" ZPROPERTY_VALUE="$2" if [ ! -z "$ZPROPERTY_VALUE" ] then touch $ZPROPERTY_FILE echo "$ZPROPERTY_KEY = $ZPROPERTY_VALUE in file $ZPROPERTY_FILE" propwrite #"$ZPROPERTY_FILE" "${ZPROPERTY_VALUE}" else echo "No value for $1" fi else echo found $ZPROPERTY_FILE echo "$ZPROPERTY_KEY = $ZPROPERTY_VALUE in file $ZPROPERTY_FILE" ZPROPERTY_VALUE="$2" read -p "Overwrite $1 with ${ZPROPERTY_VALUE} ? " yn case $yn in [Yy]* ) propwrite;;# "$ZPROPERTY_" "${ZPROPERTY_VALUE}";; [Nn]* ) exit 130;; * ) echo "Answer please";; esac echo $IPFS_FILE show $IPFS_FILE fi else echo "conditions unmet" exit 244 # tempassin $TEMP # pwd # export PROFILE_FILE="$(date -u +%s)" # vi $PROFILE_FILE # echo "Renaming..." # TITLE="$(head -n 1 $PROFILE_FILE)" # TO_FILE=$PROFILE_FILE-$(echo $TITLE | tr '[:upper:]' '[:lower:]' | sed -e 's/ /\_/g' ) # add $ZPROFILEDIR/$TO_FILE # # rm -rf $TEMP fi } index(){ FILES="$(ls -1 $ZPROFILEDIR)" i=0 echo "{" for FILE in $FILES do if [ $FILE != "README" ]; then if [ $i != "0" ]; then echo ","; fi PROP=$(echo $(cat $ZPROFILEDIR/$FILE | json2bash) | cut -d '=' -f 1 | awk '{print $0}') VAL=$(echo $(cat $ZPROFILEDIR/$FILE | json2bash) | cut -d '=' -f 2 | awk '{print $1}') echo '"'$PROP'":"'$VAL'"'; let i+=1 fi done echo "}" } title(){ echo "ak-profile-cli" echo "--------------" } import(){ if [ ! -z $1 ] then if [ ! -d $1 ] then echo "Profile folder check: Folder $1 does not exist. Stopping..." exit 4 else echo "Profile folder check: Folder $1 exists." fl="$(ls -1 $1)" for f in $fl do add $1/$f done fi else echo "No value" exit 6 fi exit 224 } add(){ tempassin if [ -f $ZPROFILEDIR/$1 ]; then FILE="$ZPROFILEDIR/$1" echo "Adding from " $FILE FILE_IPFS_HASH=$(ipfs add -q $FILE) FILE_SIGN_FILE=$(pwd)/$1".asc" gpg --detach-sign --sign-with $FINGERPRINT --armor --output $FILE_SIGN_FILE $FILE FILE_SIGNATURE=$(ipfs add -q $FILE_SIGN_FILE) cat > data < Show profile" echo "import Import a folder to zchain #TODO" echo "add Creates a data file from the profile file you point to" echo "set Sets a profile value" echo "get Gets a profile" echo "" exit 0 } if [ ! -z $1 ]; then case $1 in help) usage; exit;; index) index; exit;; show) show $2; exit;; import) import $2; exit;; add) add $2; exit;; set) propset $2 "$3"; exit;; get) propget $2; exit;; * ) usage;; esac else usage fi