aboutsummaryrefslogtreecommitdiff
path: root/bin/ak-news
blob: 812ef34b6e0227c0e49c2b3023050793dc73efc7 (plain)
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#!/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
	for FILE in $FILES
	do
		DATE=$(echo $FILE | cut -d - -f 1 | awk '{print $1}')
		TITLE=$(head -n 1 $ZNEWSDIR/$FILE)
        IPFS_HASH=$(ak-ipfs-addn $ZNEWSDIR/$FILE)
		echo $i \| $IPFS_HASH \| $DATE \| $TITLE
		let i+=1
	done	
}
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)"
    cd $TEMP
	if [ -f $1 ]; then
		FILE="$1"
		cp $FILE $ZNEWSDIR
		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"
		gpg --detach-sign --sign-with $FINGERPRINT --armor --output $FILE_SIGN_FILE $FILE
		FILE_SIGNATURE=$(ak-ipfs-add $FILE_SIGN_FILE)
		cat > data <<EOF
{
   "datetime":"$DATETIME",
   "title":"$TITLE",
   "filename":"$FILE",
   "ipfs":"$FILE_IPFS_HASH",
   "detach":"$FILE_SIGNATURE"
}
EOF
	else
		echo "File $FILE doesn't exist";
		exit 2
	fi
	ak-pack_z_block "news/add" data
	if [ $? == 0 ]
	then
		echo "News added successfully"
	else
		echo "error??"
		exit 1
	fi
}
add(){
    TEMP="$(ak-tempassin)"
    cd $TEMP
	if [ -f $ZNEWSDIR/$1 ]; then
		FILE="$1"
		echo "Adding news from " $FILE
		DATETIME=$(echo $FILE | cut -d - -f 1 | awk '{print $1}')
		TITLE=$(head -n 1 $ZNEWSDIR/$FILE)
		FILE_IPFS_HASH=$(ak-ipfs-add $ZNEWSDIR/$FILE)
		FILE_SIGN_FILE=$FILE".asc"
		gpg --detach-sign --sign-with $FINGERPRINT --armor --output $FILE_SIGN_FILE $ZNEWSDIR/$FILE
		FILE_SIGNATURE=$(ak-ipfs-add $FILE_SIGN_FILE)
		cat > data <<EOF
{
   "datetime":"$DATETIME",
   "title":"$TITLE",
   "filename":"$FILE",
   "ipfs":"$FILE_IPFS_HASH",
   "detach":"$FILE_SIGNATURE"
}
EOF
	else
		echo "File $FILE doesn't exist";
		exit 2
	fi
	ak-pack_z_block "news/add" data
	if [ $? == 0 ]
	then
		echo "News added successfully"
	else
		echo "error??"
		exit 1
	fi
}
usage(){
	echo "#TODO"
	echo "All you need to know is that there are two options available:"
	echo "help		Prints this help message"
	echo "local-index		Prints an indexed table of your news files"
	echo "import <file>	#TODO"
	echo "add <file>	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
}
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;;
		* ) usage;;
	esac
else usage
fi