|
@@ -55,6 +55,8 @@ IPFS_PORT=4001
|
55
|
55
|
IPFS_PATH=/usr/bin
|
56
|
56
|
IPFS_COMMAND=$IPFS_PATH/ipfs
|
57
|
57
|
IPFS_USERS_FILE=/home/$MY_USERNAME/.ipfs-users
|
|
58
|
+IPFS_PUBLIC=/home/$MY_USERNAME/.ipfs-public
|
|
59
|
+IPFS_URL='http://127.0.0.1:8080/ipns'
|
58
|
60
|
|
59
|
61
|
MY_BLOG_STR=$"My Blog"
|
60
|
62
|
MY_MAIL_STR=$"My Mail"
|
|
@@ -84,13 +86,45 @@ TEMPFILE=$(mktemp /tmp/zeronetavahi.XXXXXX)
|
84
|
86
|
# List of tox users previously seen
|
85
|
87
|
PREV_TOX_USERS_FILE=/root/.prev_tox_users
|
86
|
88
|
|
|
89
|
+function ipfs_publish {
|
|
90
|
+ # Publishes anything within the ~/Public directory
|
|
91
|
+
|
|
92
|
+ DIR_TO_CHECK=/home/$MY_USERNAME/Public
|
|
93
|
+ if [ ! -d $DIR_TO_CHECK ]; then
|
|
94
|
+ return
|
|
95
|
+ fi
|
|
96
|
+
|
|
97
|
+ OLD_STAT_FILE=/home/$MY_USERNAME/.old_stat.txt
|
|
98
|
+
|
|
99
|
+ if [ -e $OLD_STAT_FILE ]
|
|
100
|
+ then
|
|
101
|
+ OLD_STAT=$(cat $OLD_STAT_FILE)
|
|
102
|
+ else
|
|
103
|
+ OLD_STAT="nothing"
|
|
104
|
+ fi
|
|
105
|
+
|
|
106
|
+ NEW_STAT=$(stat -t $DIR_TO_CHECK)
|
|
107
|
+
|
|
108
|
+ if [ "$OLD_STAT" != "$NEW_STAT" ]; then
|
|
109
|
+ su -c "echo \$($IPFS_COMMAND add -rq /home/$MY_USERNAME/Public | tail -n 1) > $IPFS_PUBLIC" - $MY_USERNAME
|
|
110
|
+ echo $NEW_STAT > $OLD_STAT_FILE
|
|
111
|
+ fi
|
|
112
|
+
|
|
113
|
+ if [ -f $IPFS_PUBLIC ]; then
|
|
114
|
+ IPFS_PUBLIC_ID=$(cat $IPFS_PUBLIC)
|
|
115
|
+ su -c "$IPFS_COMMAND name publish /ipfs/$IPFS_PUBLIC_ID" - $MY_USERNAME
|
|
116
|
+ fi
|
|
117
|
+}
|
|
118
|
+
|
87
|
119
|
function ipfs_bootstrap {
|
88
|
120
|
cat $TEMPFILE_BASE | grep "IPFS\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
|
89
|
121
|
|
90
|
122
|
state=0
|
91
|
123
|
address=""
|
92
|
124
|
peer=""
|
93
|
|
- echo -n '' > $IPFS_USERS_FILE
|
|
125
|
+ if [ -d /home/$MY_USERNAME/Desktop ]; then
|
|
126
|
+ echo -n '' > ${IPFS_USERS_FILE}.new
|
|
127
|
+ fi
|
94
|
128
|
while IFS='' read -r line || [[ -n "$line" ]]; do
|
95
|
129
|
if [ ${state} -eq "3" ]; then
|
96
|
130
|
if [[ $line == *"txt ="* ]]; then
|
|
@@ -98,7 +132,12 @@ function ipfs_bootstrap {
|
98
|
132
|
ipfs_peer_id=$(echo "$ipfs_txt" | awk -F ':' '{print $1}')
|
99
|
133
|
ipfs_tox_id=$(echo "$ipfs_txt" | awk -F ':' '{print $2}')
|
100
|
134
|
$IPFS_COMMAND bootstrap add /ip4/${address}/tcp/${IPFS_PORT}/ipfs/${ipfs_peer_id}
|
101
|
|
- echo "$ipfs_tox_id $ipfs_peer_id" >> $IPFS_USERS_FILE
|
|
135
|
+ if [ -d /home/$MY_USERNAME/Desktop ]; then
|
|
136
|
+ if grep -q "$ipfs_tox_id" $TOX_USERS_FILE; then
|
|
137
|
+ ipfs_tox_nick=$(cat $TOX_USERS_FILE | grep $ipfs_tox_id | awk -F ' ' '{print $1}')
|
|
138
|
+ echo "$ipfs_tox_nick:${IPFS_URL}/$ipfs_peer_id" >> ${IPFS_USERS_FILE}.new
|
|
139
|
+ fi
|
|
140
|
+ fi
|
102
|
141
|
state=0
|
103
|
142
|
fi
|
104
|
143
|
fi
|
|
@@ -118,6 +157,16 @@ function ipfs_bootstrap {
|
118
|
157
|
state=1
|
119
|
158
|
fi
|
120
|
159
|
done < "$TEMPFILE"
|
|
160
|
+
|
|
161
|
+ # Create a list of user sites, in alphabetical order by Tox nick
|
|
162
|
+ if [ -d /home/$MY_USERNAME/Desktop ]; then
|
|
163
|
+ if [ -f ${IPFS_USERS_FILE}.new ]; then
|
|
164
|
+ sites_list=$(cat ${IPFS_USERS_FILE}.new | sort -d)
|
|
165
|
+ echo "${sites_list}" > ${IPFS_USERS_FILE}
|
|
166
|
+ chown $MY_USERNAME:$MY_USERNAME ${IPFS_USERS_FILE}
|
|
167
|
+ rm ${IPFS_USERS_FILE}.new
|
|
168
|
+ fi
|
|
169
|
+ fi
|
121
|
170
|
}
|
122
|
171
|
|
123
|
172
|
function detect_new_tox_users {
|
|
@@ -506,6 +555,7 @@ fi
|
506
|
555
|
|
507
|
556
|
avahi_ipfs
|
508
|
557
|
ipfs_bootstrap
|
|
558
|
+ipfs_publish
|
509
|
559
|
#detect_tox_users
|
510
|
560
|
avahi_remove_info
|
511
|
561
|
|