Change the package name of the web livebox provider.
(From org.tizen.data-provider-webapp-slave to livebox.web-provider)
Clear the files in the shared folder first before initiate the master.
Add reader & always folder parse code from conf file.
Change-Id: I10415faadda3dd267d728ce71b029abdb770964e
package=org.tizen.data-provider-slave
[html]
-package=org.tizen.data-provider-webapp-slave
+package=livebox.web-provider
[osp]
package=gi2qxenosh.osp-livebox-service
max_log_file=3
sqilte_flush_max=1048576
db_path=/opt/dbspace/.livebox.db
-log_path=/opt/usr/share/live_magazine/log
share_path=/opt/usr/share/live_magazine/
+log_path=/opt/usr/share/live_magazine/log
+always_path=/opt/usr/share/live_magazine/always
+reader_path=/opt/usr/share/live_magazine/reader
script_port_path=/opt/usr/live/script_port/
ping_interval=240.0
slave_max_load=30
start ()
{
- rm /opt/usr/share/live_magazine/*
- rm /opt/usr/share/live_magazine/reader/*
- rm /opt/usr/share/live_magazine/log/*
rm /tmp/.stop.provider
launch_provider &
}
char *root;
char *script_port;
char *slave_log;
+ char *reader;
+ char *always;
char *db;
} path;
#define CONF_PATH g_conf.path.conf
#define ROOT_PATH g_conf.path.root
#define SLAVE_LOG_PATH g_conf.path.slave_log
+#define READER_PATH g_conf.path.reader
+#define ALWAYS_PATH g_conf.path.always
#define REPLACE_TAG_APPID g_conf.replace_tag
#define SLAVE_TTL g_conf.slave_ttl
extern int util_check_ext(const char *filename, const char *check_ptr);
extern int util_validate_livebox_package(const char *pkgname);
extern int util_unlink(const char *filename);
+extern int util_unlink_files(const char *folder);
extern char *util_slavename(void);
extern const char *util_basename(const char *name);
extern unsigned long util_free_space(const char *path);
Name: org.tizen.data-provider-master
Summary: Master data provider
-Version: 0.13.29
+Version: 0.13.30
Release: 1
Group: main/app
License: Flora License
mkdir -p /opt/usr/share/live_magazine/reader
chown 5000:5000 /opt/usr/share/live_magazine/reader
+mkdir -p /opt/usr/share/live_magazine/always
+chown 5000:5000 /opt/usr/share/live_magazine/always
+
# End of a list of affected folder by the transmute attribute
if [ ! -f "/opt/dbspace/livebox.db" ]; then
%{_datarootdir}/data-provider-master/*
%{_libdir}/systemd/user/data-provider-master.service
%{_datarootdir}/license/*
+
+# End of a file
.conf = "/opt/usr/live/%s/etc/%s.conf",
.image = "/opt/usr/share/live_magazine/",
.slave_log = "/opt/usr/share/live_magazine/log",
+ .reader = "/opt/usr/share/live_magazine/reader",
+ .always = "/opt/usr/share/live_magazine/always",
.script = "/opt/usr/live/%s/res/script/%s.edj",
.root = "/opt/usr/live/",
.script_port = "/opt/usr/live/script_port/",
DbgPrint("DB Path: %s\n", g_conf.path.db);
}
+static void reader_path_handler(char *buffer)
+{
+ g_conf.path.reader = strdup(buffer);
+ if (!g_conf.path.reader)
+ ErrPrint("Heap: %s\n", strerror(errno));
+ DbgPrint("Reader Path: %s\n", g_conf.path.reader);
+}
+
+static void always_path_handler(char *buffer)
+{
+ g_conf.path.always = strdup(buffer);
+ if (!g_conf.path.always)
+ ErrPrint("Heap: %s\n", strerror(errno));
+ DbgPrint("Always Path: %s\n", g_conf.path.always);
+}
+
static void log_path_handler(char *buffer)
{
g_conf.path.slave_log = strdup(buffer);
.handler = log_path_handler,
},
{
+ .name = "reader_path",
+ .handler = reader_path_handler,
+ },
+ {
+ .name = "always_path",
+ .handler = always_path_handler,
+ },
+ {
.name = "share_path",
.handler = share_path_handler,
},
conf_loader();
+ /*!
+ * \note
+ * Clear old contents files before start the master provider.
+ */
+ (void)util_unlink_files(ALWAYS_PATH);
+ (void)util_unlink_files(READER_PATH);
+ (void)util_unlink_files(IMAGE_PATH);
+ (void)util_unlink_files(SLAVE_LOG_PATH);
+
script_init();
app_create();
#include <unistd.h>
#include <stdlib.h>
#include <sys/statvfs.h>
+#include <sys/types.h>
+#include <dirent.h>
#include <dlog.h>
#include <Eina.h>
return new_path;
}
+HAPI int util_unlink_files(const char *folder)
+{
+ struct stat info;
+ DIR *handle;
+ struct dirent *entry;
+ char *abspath;
+ int len;
+
+ if (lstat(folder, &info) < 0) {
+ ErrPrint("Error: %s\n", strerror(errno));
+ return -EIO;
+ }
+
+ if (!S_ISDIR(info.st_mode)) {
+ ErrPrint("Error: %s is not a folder", folder);
+ return -EINVAL;
+ }
+
+ handle = opendir(folder);
+ if (!handle) {
+ ErrPrint("Error: %s\n", strerror(errno));
+ return -EIO;
+ }
+
+ while ((entry = readdir(handle))) {
+ if (!strcmp(entry->d_name, "."))
+ continue;
+
+ if (!strcmp(entry->d_name, ".."))
+ continue;
+
+ len = strlen(folder) + strlen(entry->d_name) + 3;
+ abspath = calloc(1, len);
+ if (!abspath) {
+ ErrPrint("Heap: %s\n", strerror(errno));
+ continue;
+ }
+ snprintf(abspath, len - 1, "%s/%s", folder, entry->d_name);
+
+ if (unlink(abspath) < 0)
+ DbgPrint("unlink: %s - %s\n", abspath, strerror(errno));
+
+ free(abspath);
+ }
+
+ closedir(handle);
+ return 0;
+}
+
/* End of a file */