Bob Mottram 9 лет назад
Родитель
Сommit
e0b9926101
2 измененных файлов: 181 добавлений и 2 удалений
  1. 142
    0
      src/freedombone
  2. 39
    2
      src/freedombone-meshweb

+ 142
- 0
src/freedombone Просмотреть файл

@@ -1613,6 +1613,146 @@ function mesh_cjdns_tools {
1613 1613
   echo 'mesh_cjdns_tools' >> $COMPLETION_FILE
1614 1614
 }
1615 1615
 
1616
+function install_zeronet_blog {
1617
+  if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
1618
+      return
1619
+  fi
1620
+
1621
+  if grep -Fxq "install_zeronet_blog" $COMPLETION_FILE; then
1622
+      return
1623
+  fi
1624
+
1625
+  if [ ! -f /home/$MY_USERNAME/README ]; then
1626
+      touch /home/$MY_USERNAME/README
1627
+  fi
1628
+
1629
+  if grep -q "ZeroNet Blog address" /home/$MY_USERNAME/README; then
1630
+      return
1631
+  fi
1632
+
1633
+  if [ ! -d /etc/avahi ]; then
1634
+      echo 'Avahi is not installed'
1635
+      exit 736
1636
+  fi
1637
+
1638
+  cd /opt/zeronet
1639
+  python zeronet.py --batch siteCreate 2> /opt/zeronet/blog.txt
1640
+  if [ ! -f /opt/zeronet/blog.txt ]; then
1641
+      echo 'Unable to create blog'
1642
+      exit 479
1643
+  fi
1644
+  blog_address=$(cat blog.txt | grep "Site address" | awk -F ':' '{print $2}')
1645
+  blog_private_key=$(cat blog.txt | grep "Site private key" | awk -F ':' '{print $2}')
1646
+  ZERONET_BLOG_ADDRESS=${blog_address//[[:blank:]]/}
1647
+  ZERONET_BLOG_PRIVATE_KEY=${blog_private_key//[[:blank:]]/}
1648
+
1649
+  if [ ! -d "/opt/zeronet/data/$ZERONET_BLOG_ADDRESS" ]; then
1650
+      echo "Unable to find site directory: /opt/zeronet/data/$ZERONET_BLOG_ADDRESS"
1651
+      exit 7638
1652
+  fi
1653
+
1654
+  git clone $ZERONET_BLOG_REPO ZeroBlog
1655
+  if [ ! -d /opt/zeronet/ZeroBlog ]; then
1656
+      echo 'ZeroBlog repo could not be cloned'
1657
+      exit 6739
1658
+  fi
1659
+  echo "Blog address:     $ZERONET_BLOG_ADDRESS"
1660
+  echo "Blog private key: $ZERONET_BLOG_PRIVATE_KEY"
1661
+  cp -r /opt/zeronet/ZeroBlog/* /opt/zeronet/data/$ZERONET_BLOG_ADDRESS
1662
+  python zeronet.py siteSign $ZERONET_BLOG_ADDRESS $ZERONET_BLOG_PRIVATE_KEY
1663
+
1664
+  # Add an avahi service
1665
+  echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-blog.service
1666
+  echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-blog.service
1667
+  echo '<service-group>' >> /tmp/zeronet-blog.service
1668
+  echo '  <name replace-wildcards="yes">%h ZeroNet Blog</name>' >> /tmp/zeronet-blog.service
1669
+  echo '  <service>' >> /tmp/zeronet-blog.service
1670
+  echo '    <type>_zeronet._udp</type>' >> /tmp/zeronet-blog.service
1671
+  echo "    <port>$ZERONET_PORT</port>" >> /tmp/zeronet-blog.service
1672
+  echo "    <txt-record>$ZERONET_URL/$ZERONET_BLOG_ADDRESS</txt-record>" >> /tmp/zeronet-blog.service
1673
+  echo '  </service>' >> /tmp/zeronet-blog.service
1674
+  echo '</service-group>' >> /tmp/zeronet-blog.service
1675
+  sudo cp /tmp/zeronet-blog.service /etc/avahi/services/zeronet-blog.service
1676
+
1677
+  if ! grep -q "ZeroNet Blog address" /home/$MY_USERNAME/README; then
1678
+      echo '' >> /home/$MY_USERNAME/README
1679
+      echo "ZeroNet Blog address: $ZERONET_BLOG_ADDRESS" >> /home/$MY_USERNAME/README
1680
+      echo "ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY" >> /home/$MY_USERNAME/README
1681
+  fi
1682
+
1683
+  echo 'install_zeronet_blog' >> $COMPLETION_FILE
1684
+}
1685
+
1686
+function install_zeronet_forum {
1687
+  if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
1688
+      return
1689
+  fi
1690
+
1691
+  if grep -Fxq "install_zeronet_forum" $COMPLETION_FILE; then
1692
+      return
1693
+  fi
1694
+
1695
+  if [ ! -f /home/$MY_USERNAME/README ]; then
1696
+      touch /home/$MY_USERNAME/README
1697
+  fi
1698
+
1699
+  if grep -q "ZeroNet Forum address" /home/$MY_USERNAME/README; then
1700
+      return
1701
+  fi
1702
+
1703
+  if [ ! -d /etc/avahi ]; then
1704
+      echo 'Avahi is not installed'
1705
+      exit 736
1706
+  fi
1707
+
1708
+  cd /opt/zeronet
1709
+  python zeronet.py --batch siteCreate 2> /opt/zeronet/forum.txt
1710
+  if [ ! -f /opt/zeronet/forum.txt ]; then
1711
+      echo 'Unable to create forum'
1712
+      exit 479
1713
+  fi
1714
+  forum_address=$(cat forum.txt | grep "Site address" | awk -F ':' '{print $2}')
1715
+  forum_private_key=$(cat forum.txt | grep "Site private key" | awk -F ':' '{print $2}')
1716
+  ZERONET_FORUM_ADDRESS=${forum_address//[[:blank:]]/}
1717
+  ZERONET_FORUM_PRIVATE_KEY=${forum_private_key//[[:blank:]]/}
1718
+
1719
+  if [ ! -d "/opt/zeronet/data/$ZERONET_FORUM_ADDRESS" ]; then
1720
+      echo "Unable to find site directory: /opt/zeronet/data/$ZERONET_FORUM_ADDRESS"
1721
+      exit 7638
1722
+  fi
1723
+
1724
+  git clone $ZERONET_FORUM_REPO ZeroTalk
1725
+  if [ ! -d /opt/zeronet/ZeroTalk ]; then
1726
+      echo 'ZeroTalk repo could not be cloned'
1727
+      exit 6739
1728
+  fi
1729
+  echo "Forum address:     $ZERONET_FORUM_ADDRESS"
1730
+  echo "Forum private key: $ZERONET_FORUM_PRIVATE_KEY"
1731
+  cp -r /opt/zeronet/ZeroTalk/* /opt/zeronet/data/$ZERONET_FORUM_ADDRESS
1732
+  python zeronet.py siteSign $ZERONET_FORUM_ADDRESS $ZERONET_FORUM_PRIVATE_KEY
1733
+
1734
+  # Add an avahi service
1735
+  echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-forum.service
1736
+  echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-forum.service
1737
+  echo '<service-group>' >> /tmp/zeronet-forum.service
1738
+  echo '  <name replace-wildcards="yes">%h ZeroNet Forum</name>' >> /tmp/zeronet-forum.service
1739
+  echo '  <service>' >> /tmp/zeronet-forum.service
1740
+  echo '    <type>_zeronet._udp</type>' >> /tmp/zeronet-forum.service
1741
+  echo "    <port>$ZERONET_PORT</port>" >> /tmp/zeronet-forum.service
1742
+  echo "    <txt-record>$ZERONET_URL/$ZERONET_FORUM_ADDRESS</txt-record>" >> /tmp/zeronet-forum.service
1743
+  echo '  </service>' >> /tmp/zeronet-forum.service
1744
+  echo '</service-group>' >> /tmp/zeronet-forum.service
1745
+  sudo cp /tmp/zeronet-forum.service /etc/avahi/services/zeronet-forum.service
1746
+
1747
+  if ! grep -q "ZeroNet Forum address" /home/$MY_USERNAME/README; then
1748
+      echo '' >> /home/$MY_USERNAME/README
1749
+      echo "ZeroNet Forum address: $ZERONET_FORUM_ADDRESS" >> /home/$MY_USERNAME/README
1750
+      echo "ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY" >> /home/$MY_USERNAME/README
1751
+  fi
1752
+
1753
+  echo 'install_zeronet_forum' >> $COMPLETION_FILE
1754
+}
1755
+
1616 1756
 function install_zeronet {
1617 1757
   if grep -Fxq "install_zeronet" $COMPLETION_FILE; then
1618 1758
       return
@@ -10451,6 +10591,8 @@ create_upgrade_script
10451 10591
 install_zeronet
10452 10592
 install_watchdog_script
10453 10593
 configure_avahi
10594
+install_zeronet_blog
10595
+install_zeronet_forum
10454 10596
 install_atheros_wifi
10455 10597
 configure_firewall_for_cjdns
10456 10598
 mesh_cjdns

+ 39
- 2
src/freedombone-meshweb Просмотреть файл

@@ -13,6 +13,7 @@ ZERONET_BLOG_REPO='https://github.com/HelloZeroNet/ZeroBlog'
13 13
 ZERONET_FORUM_REPO='https://github.com/HelloZeroNet/ZeroTalk'
14 14
 ZERONET_DIR=~/zeronet
15 15
 ZERONET_URL=http://127.0.0.1:43110
16
+ZERONET_PORT=15441
16 17
 TRACKER_PORT=6969
17 18
 
18 19
 MY_USERNAME=$USER
@@ -26,6 +27,11 @@ function install_zeronet_blog {
26 27
         return
27 28
     fi
28 29
 
30
+    if [ ! -d /etc/avahi ]; then
31
+        echo 'Avahi is not installed'
32
+        exit 736
33
+    fi
34
+
29 35
     cd $ZERONET_DIR
30 36
     python zeronet.py --batch siteCreate 2> $ZERONET_DIR/blog.txt
31 37
     if [ ! -f $ZERONET_DIR/blog.txt ]; then
@@ -38,7 +44,7 @@ function install_zeronet_blog {
38 44
     ZERONET_BLOG_PRIVATE_KEY=${blog_private_key//[[:blank:]]/}
39 45
 
40 46
     if [ ! -d "$ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS" ]; then
41
-        echo "Unable to find site directory: $$ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS"
47
+        echo "Unable to find site directory: $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS"
42 48
         exit 7638
43 49
     fi
44 50
 
@@ -52,6 +58,19 @@ function install_zeronet_blog {
52 58
     cp -r $ZERONET_DIR/ZeroBlog/* $ZERONET_DIR/data/$ZERONET_BLOG_ADDRESS
53 59
     python zeronet.py siteSign $ZERONET_BLOG_ADDRESS $ZERONET_BLOG_PRIVATE_KEY
54 60
 
61
+    # Add an avahi service
62
+    echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-blog.service
63
+    echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-blog.service
64
+    echo '<service-group>' >> /tmp/zeronet-blog.service
65
+    echo '  <name replace-wildcards="yes">%h ZeroNet Blog</name>' >> /tmp/zeronet-blog.service
66
+    echo '  <service>' >> /tmp/zeronet-blog.service
67
+    echo '    <type>_zeronet._udp</type>' >> /tmp/zeronet-blog.service
68
+    echo "    <port>$ZERONET_PORT</port>" >> /tmp/zeronet-blog.service
69
+    echo "    <txt-record>$ZERONET_URL/$ZERONET_BLOG_ADDRESS</txt-record>" >> /tmp/zeronet-blog.service
70
+    echo '  </service>' >> /tmp/zeronet-blog.service
71
+    echo '</service-group>' >> /tmp/zeronet-blog.service
72
+    sudo cp /tmp/zeronet-blog.service /etc/avahi/services/zeronet-blog.service
73
+
55 74
     if ! grep -q "ZeroNet Blog address" /home/$MY_USERNAME/README; then
56 75
         echo '' >> /home/$MY_USERNAME/README
57 76
         echo "ZeroNet Blog address: $ZERONET_BLOG_ADDRESS" >> /home/$MY_USERNAME/README
@@ -70,6 +89,11 @@ function install_zeronet_forum {
70 89
         return
71 90
     fi
72 91
 
92
+    if [ ! -d /etc/avahi ]; then
93
+        echo 'Avahi is not installed'
94
+        exit 736
95
+    fi
96
+
73 97
     cd $ZERONET_DIR
74 98
     python zeronet.py --batch siteCreate 2> $ZERONET_DIR/forum.txt
75 99
     if [ ! -f $ZERONET_DIR/forum.txt ]; then
@@ -82,7 +106,7 @@ function install_zeronet_forum {
82 106
     ZERONET_FORUM_PRIVATE_KEY=${forum_private_key//[[:blank:]]/}
83 107
 
84 108
     if [ ! -d "$ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS" ]; then
85
-        echo "Unable to find site directory: $$ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS"
109
+        echo "Unable to find site directory: $ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS"
86 110
         exit 7638
87 111
     fi
88 112
 
@@ -96,6 +120,19 @@ function install_zeronet_forum {
96 120
     cp -r $ZERONET_DIR/ZeroTalk/* $ZERONET_DIR/data/$ZERONET_FORUM_ADDRESS
97 121
     python zeronet.py siteSign $ZERONET_FORUM_ADDRESS $ZERONET_FORUM_PRIVATE_KEY
98 122
 
123
+    # Add an avahi service
124
+    echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-forum.service
125
+    echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-forum.service
126
+    echo '<service-group>' >> /tmp/zeronet-forum.service
127
+    echo '  <name replace-wildcards="yes">%h ZeroNet Forum</name>' >> /tmp/zeronet-forum.service
128
+    echo '  <service>' >> /tmp/zeronet-forum.service
129
+    echo '    <type>_zeronet._udp</type>' >> /tmp/zeronet-forum.service
130
+    echo "    <port>$ZERONET_PORT</port>" >> /tmp/zeronet-forum.service
131
+    echo "    <txt-record>$ZERONET_URL/$ZERONET_FORUM_ADDRESS</txt-record>" >> /tmp/zeronet-forum.service
132
+    echo '  </service>' >> /tmp/zeronet-forum.service
133
+    echo '</service-group>' >> /tmp/zeronet-forum.service
134
+    sudo cp /tmp/zeronet-forum.service /etc/avahi/services/zeronet-forum.service
135
+
99 136
     if ! grep -q "ZeroNet Forum address" /home/$MY_USERNAME/README; then
100 137
         echo '' >> /home/$MY_USERNAME/README
101 138
         echo "ZeroNet Forum address: $ZERONET_FORUM_ADDRESS" >> /home/$MY_USERNAME/README