picloud now can be configured from config

service fix
This commit is contained in:
2021-07-26 11:49:52 +03:00
parent 8f548920ac
commit c91b54d325
3 changed files with 38 additions and 9 deletions

View File

@@ -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~ -- "$@"

View File

@@ -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

View File

@@ -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"))