From c91b54d3257b2863915a657b5c5e1a361c1f97fd Mon Sep 17 00:00:00 2001 From: peri4 Date: Mon, 26 Jul 2021 11:49:52 +0300 Subject: [PATCH] picloud now can be configured from config service fix --- .../debian-service/DEBIAN/postinst | 4 +-- .../debian-service/DEBIAN/preinst | 12 +++---- utils/cloud_dispatcher/main.cpp | 31 ++++++++++++++++++- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/utils/cloud_dispatcher/debian-service/DEBIAN/postinst b/utils/cloud_dispatcher/debian-service/DEBIAN/postinst index 351ee5cd..3b093915 100644 --- a/utils/cloud_dispatcher/debian-service/DEBIAN/postinst +++ b/utils/cloud_dispatcher/debian-service/DEBIAN/postinst @@ -7,8 +7,8 @@ version=$2 if [ "$action" = "configure" ]; then cp /opt/org.SHS.picloud/picloud.service /etc/systemd/system/ systemctl --system daemon-reload >/dev/null || true - systemctl enable shs-server >/dev/null || true - systemctl start shs-server >/dev/null || true + systemctl enable picloud >/dev/null || true + systemctl start picloud >/dev/null || true fi #dpkg-maintscript-helper rm_conffile /etc/network/if-up.d/openssh-server 1:7.9p1-1~ -- "$@" diff --git a/utils/cloud_dispatcher/debian-service/DEBIAN/preinst b/utils/cloud_dispatcher/debian-service/DEBIAN/preinst index 812c444c..3ab37b67 100644 --- a/utils/cloud_dispatcher/debian-service/DEBIAN/preinst +++ b/utils/cloud_dispatcher/debian-service/DEBIAN/preinst @@ -5,11 +5,13 @@ action=$1 version=$2 if [ "$action" = "install" ]; then - gr=dialout - if grep -q gpio /etc/group; then - gr=$gr,gpio + if ! id shs &>/dev/null; then + gr=dialout + if grep -q gpio /etc/group; then + gr=$gr,gpio + fi + useradd --system --create-home --home-dir /var/lib/shs --shell /usr/sbin/nologin --groups $gr shs fi - useradd --system --create-home --home-dir /var/lib/shs --shell /usr/sbin/nologin --groups $gr shs fi #if [ "$action" = upgrade ] || [ "$action" = install ] #then @@ -20,6 +22,4 @@ fi # fi #fi -#dpkg-maintscript-helper rm_conffile /etc/network/if-up.d/openssh-server 1:7.9p1-1~ -- "$@" - exit 0 diff --git a/utils/cloud_dispatcher/main.cpp b/utils/cloud_dispatcher/main.cpp index a5eb76f1..7283b6ef 100644 --- a/utils/cloud_dispatcher/main.cpp +++ b/utils/cloud_dispatcher/main.cpp @@ -38,6 +38,20 @@ void usage() { } +PIString confDir() { + return +#ifdef WINDOWS + PIDir::home().path() + "/AppData/Local" +#elif defined(MAC_OS) + PIDir::home().path() + "/Library/Preferences" +#elif defined(ANDROID) + PIString(".") +#else + PIDir::home().path() + "/.config" +#endif + + "/SHS"; +} + int main (int argc, char * argv[]) { PICLI cli(argc, argv); cli.addArgument("help"); @@ -50,8 +64,23 @@ int main (int argc, char * argv[]) { usage(); return 0; } - PITimer status_timer; PIEthernet::Address addr = PIEthernet::Address("0.0.0.0", 10101); + + PIString conf_path = confDir(); + PIDir::make(conf_path); + conf_path += "/picloud.conf"; + if (!PIFile::isExists(conf_path)) { + PIFile f(conf_path, PIIODevice::ReadWrite); + f << "ip = " << addr.ipString() << "\n" + << "port = " << addr.port() << "\n"; + } + { + PIConfig conf(conf_path, PIIODevice::ReadOnly); + addr.setIP(conf.getValue("ip", addr.ipString()).toString()); + addr.setPort(conf.getValue("port", addr.port()).toUShort()); + } + + PITimer status_timer; if (cli.hasArgument("ip")) addr.setIP(cli.argumentValue("ip")); if (cli.hasArgument("port"))