reorg queue/imei/date/time.utime.up/down.function_code
authorDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 8 Oct 2020 10:24:10 +0000 (12:24 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 8 Oct 2020 10:24:10 +0000 (12:24 +0200)
zc-mqtt

diff --git a/zc-mqtt b/zc-mqtt
index 365dc94..5a6cd86 100755 (executable)
--- a/zc-mqtt
+++ b/zc-mqtt
@@ -25,7 +25,10 @@ BEGIN {
        $cwd =~ s{/[^/]+$}{};
        chdir $cwd;
 
-       open(my $log, '>', 'log.'.strftime("%Y-%m-%dT%H:%M:%S",localtime()));
+       my $log_dir = 'log';
+       mkdir $log_dir unless -d $log_dir;
+
+       open(my $log, '>', "$log_dir/".strftime("%Y-%m-%dT%H:%M:%S",localtime()));
        select($log);
        $|=1;
 }
@@ -105,6 +108,7 @@ while (1) {
   $msg = read_message($socket, $buf);
   if ($msg) {
     my $t = time();
+    my ($date,$time) = split(/ /,strftime("%Y-%m-%d %H:%M:%S", localtime($t)));
     print "\n",strftime("%Y-%m-%d %H:%M:%S ", localtime($t)) if $msg->message_type != MQTT_PINGRESP;
     if ($msg->message_type == MQTT_PUBLISH) {
       if ($verbose == 0) {
@@ -125,7 +129,8 @@ while (1) {
 
        my $function_code = unpack('C',substr($msg->message,2,1));
 
-       write_file "$queue/$dir/$t.$up_down.$function_code", $msg->message;
+       mkdir "$queue/$dir/$date" if ! -d "$queue/$dir/$date";
+       write_file "$queue/$dir/$date/$time.$t.$up_down.$function_code", $msg->message;
 
        if ( substr($msg->message,2,1) eq "\x07" ) { # heartbeat
                $topic =~ s/up$/down/;