Radix cross Linux package tools

Package Tools – is a set of utilities to create, install, and update RcL packages

3 Commits   0 Branches   2 Tags
11c606a6 (kx 2023-04-11 01:18:34 +0300  1) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  2) /**********************************************************************
11c606a6 (kx 2023-04-11 01:18:34 +0300  3) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  4)   Copyright 2019 Andrey V.Kosteltsev
11c606a6 (kx 2023-04-11 01:18:34 +0300  5) 
11c606a6 (kx 2023-04-11 01:18:34 +0300  6)   Licensed under the Radix.pro License, Version 1.0 (the "License");
11c606a6 (kx 2023-04-11 01:18:34 +0300  7)   you may not use this file  except  in compliance with the License.
11c606a6 (kx 2023-04-11 01:18:34 +0300  8)   You may obtain a copy of the License at
11c606a6 (kx 2023-04-11 01:18:34 +0300  9) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 10)      https://radix.pro/licenses/LICENSE-1.0-en_US.txt
11c606a6 (kx 2023-04-11 01:18:34 +0300 11) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 12)   Unless required by applicable law or agreed to in writing, software
11c606a6 (kx 2023-04-11 01:18:34 +0300 13)   distributed under the License is distributed on an "AS IS" BASIS,
11c606a6 (kx 2023-04-11 01:18:34 +0300 14)   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
11c606a6 (kx 2023-04-11 01:18:34 +0300 15)   implied.
11c606a6 (kx 2023-04-11 01:18:34 +0300 16) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 17)  **********************************************************************/
11c606a6 (kx 2023-04-11 01:18:34 +0300 18) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 19) #include <config.h>
11c606a6 (kx 2023-04-11 01:18:34 +0300 20) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 21) #include <stdlib.h>
11c606a6 (kx 2023-04-11 01:18:34 +0300 22) #include <stdio.h>
11c606a6 (kx 2023-04-11 01:18:34 +0300 23) #include <stdarg.h>
11c606a6 (kx 2023-04-11 01:18:34 +0300 24) #include <unistd.h>
11c606a6 (kx 2023-04-11 01:18:34 +0300 25) #include <time.h>
11c606a6 (kx 2023-04-11 01:18:34 +0300 26) #include <sys/time.h>
11c606a6 (kx 2023-04-11 01:18:34 +0300 27) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 28) #include <msglog.h>
11c606a6 (kx 2023-04-11 01:18:34 +0300 29) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 30) FILE *errlog;
11c606a6 (kx 2023-04-11 01:18:34 +0300 31) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 32) void (*fatal_error_hook)( void );
11c606a6 (kx 2023-04-11 01:18:34 +0300 33) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 34) void logmsg( FILE *logfile, enum _msg_type type, char *format, ... )
11c606a6 (kx 2023-04-11 01:18:34 +0300 35) {
11c606a6 (kx 2023-04-11 01:18:34 +0300 36)   va_list argp;
11c606a6 (kx 2023-04-11 01:18:34 +0300 37) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 38)   if( ! format ) return;
11c606a6 (kx 2023-04-11 01:18:34 +0300 39) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 40)   switch( type )
11c606a6 (kx 2023-04-11 01:18:34 +0300 41)   {
11c606a6 (kx 2023-04-11 01:18:34 +0300 42)     case MSG_FATAL:   fprintf( logfile, "%s: FATAL: ",   program ); break;
11c606a6 (kx 2023-04-11 01:18:34 +0300 43)     case MSG_ERROR:   fprintf( logfile, "%s: ERROR: ",   program ); break;
11c606a6 (kx 2023-04-11 01:18:34 +0300 44)     case MSG_WARNING: fprintf( logfile, "%s: WARNING: ", program ); break;
11c606a6 (kx 2023-04-11 01:18:34 +0300 45)     case MSG_NOTICE:  fprintf( logfile, "%s: NOTE: ",    program ); break;
11c606a6 (kx 2023-04-11 01:18:34 +0300 46)     case MSG_INFO:    fprintf( logfile, "%s: INFO: ",    program ); break;
11c606a6 (kx 2023-04-11 01:18:34 +0300 47)     case MSG_DEBUG:   fprintf( logfile, "%s: DEBUG: ",   program ); break;
11c606a6 (kx 2023-04-11 01:18:34 +0300 48)     case MSG_LOG:
11c606a6 (kx 2023-04-11 01:18:34 +0300 49)     {
11c606a6 (kx 2023-04-11 01:18:34 +0300 50)       time_t     t = time( NULL );
11c606a6 (kx 2023-04-11 01:18:34 +0300 51)       struct tm tm = *localtime(&t);
11c606a6 (kx 2023-04-11 01:18:34 +0300 52) 
11c606a6 (kx 2023-04-11 01:18:34 +0300 53)       fprintf( logfile, "[%04d-%02d-%02d %02d:%02d:%02d]: %s: ",
11c606a6 (kx 2023-04-11 01:18:34 +0300 54)                           tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
11c606a6 (kx 2023-04-11 01:18:34 +0300 55)                                          tm.tm_hour, tm.tm_min, tm.tm_sec,
11c606a6 (kx 2023-04-11 01:18:34 +0300 56)                                                           program );
11c606a6 (kx 2023-04-11 01:18:34 +0300 57)       break;
11c606a6 (kx 2023-04-11 01:18:34 +0300 58)     }
11c606a6 (kx 2023-04-11 01:18:34 +0300 59)     default:
11c606a6 (kx 2023-04-11 01:18:34 +0300 60)       fprintf( logfile, "%s: ", program );
11c606a6 (kx 2023-04-11 01:18:34 +0300 61)       break;
11c606a6 (kx 2023-04-11 01:18:34 +0300 62)   }
11c606a6 (kx 2023-04-11 01:18:34 +0300 63)   va_start( argp, format );
11c606a6 (kx 2023-04-11 01:18:34 +0300 64)   vfprintf( errlog, format, argp );
11c606a6 (kx 2023-04-11 01:18:34 +0300 65)   fprintf( errlog, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 66)   fflush( errlog );
11c606a6 (kx 2023-04-11 01:18:34 +0300 67) }