#!/bin/bash PROGRAM=$(basename $0) ZNEWSDIR="$AK_WORKDIR/news" TEMP="/tmp/aktmp" logit(){ ak-logthis "<$PROGRAM>" "$1" "$2" } if [ ! -d $ZNEWSDIR ]; then mkdir $ZNEWSDIR if [ "$?" == 0 ]; then logit "[INFO]" "$ZNEWSDIR created" else logit "[ERROR]" "$ZNEWSDIR couldn't be created" exit 1 fi else logit "[INFO]" "$ZNEWSDIR found" fi cd $ZNEWSDIR create(){ TEMP="$(ak-tempassin)" cd $TEMP cd curpath="$(pwd)" export NEWS_FILE="$(date +%Y%m%d_%H%M%S)" vi $NEWS_FILE echo "Renaming..." TITLE="$(head -n 1 $NEWS_FILE)" TO_FILE=$NEWS_FILE-$(echo $TITLE | tr '[:upper:]' '[:lower:]' | sed -e 's/ /\_/g' ) IPFS_FILE=$(ak-ipfs-add $NEWS_FILE) mv $NEWS_FILE $ZNEWSDIR/$TO_FILE sed -e 's,Qm.*,'"$IPFS_FILE"',g' $ZNEWSDIR/README add $TO_FILE echo "Adding to git repo..." cd $ZNEWSDIR # rm -rf $TEMP } index(){ FILES="$(ls -1 $ZNEWSDIR)" i=0 ak-get-ipfs-hashes-from-my-zchain | sort | uniq > temp for FILE in $FILES do DATE="$(echo $FILE | cut -d - -f 1 | awk '{print $1}')" TITLE="$(head -n 1 $ZNEWSDIR/$FILE)" IPFS_HASH="$(ipfs add -nQ $ZNEWSDIR/$FILE)" ONLINE="Not in zchain" grep "$IPFS_HASH" temp > /dev/null 2>&1 if [ $? -eq 0 ] then ONLINE="On zchain" fi printf "%3d | %5s | %52s | %10s | %56s \n"\ "$i" "$ONLINE" "$IPFS_HASH" "$DATE" "$TITLE" let i+=1 done rm temp } title(){ echo $PROGRAM } import(){ echo "#TODO" if [ ! -z $1 ] then if [ ! -d "$1" ] then echo $1 echo "Folder does not exist" exit 4 else echo "Folder $1 exists" fl="$(ls -1 $1)" for f in $fl do echo $1 $f add2 "$1/$f" done fi else echo "No value" exit 6 fi exit 224 } add2(){ TEMP="$(ak-tempassin)" if [ -f "$1" ]; then FILE="$(realpath $1)" cp $FILE $ZNEWSDIR cp $FILE $TEMP FILE="$(basename $1)" cd $TEMP echo "Adding news from " $FILE DATETIME=$(echo $FILE | cut -d - -f 1 | awk '{print $1}') TITLE=$(head -n 1 $FILE) FILE_IPFS_HASH=$(ak-ipfs-add $FILE) FILE_SIGN_FILE=$FILE".asc" gpg2 --homedir $AK_GPGHOME --detach-sign --sign-with $AK_FINGERPRINT --armor --output $FILE_SIGN_FILE $FILE FILE_SIGNATURE=$(ak-ipfs-add $FILE_SIGN_FILE) cat > data < data < #TODO" echo "add Creates a data file from the news file you point to" echo "create Vim is going to pop up, you will write and save your" echo " newsletter and it's going to be saved" exit 0 } akNewsRead(){ ak-enter -l 1 $1 > temp if [ $? -ne 0 ] then echo error exit 22 fi module="`cat temp | jq -r '.[].module'`" action="`cat temp | jq -r '.[].action'`" data="`cat temp | jq -r '.[].data'`" linkToText="`cat temp | jq -r ".[].$data.ipfs"`" if [ "$module" == "news" ] && [ "$action" == "add" ] then ak-ipfs-cat $linkToText else ak-logthis "[ERROR]" "Not a news block." echo "[ERROR] Not a news block." exit 1 fi rm temp } title if [ ! -z $1 ]; then case $1 in help) usage; exit;; local-index) index; exit;; import) import $2; exit;; add) add2 $2; exit;; create) create; exit;; read) akNewsRead $2; exit;; * ) usage;; esac else usage fi