From ada49da6ef79a7053f26ec33d243af381f3269d7 Mon Sep 17 00:00:00 2001 From: Stephan Eisfeld Date: Mon, 17 Apr 2017 23:21:53 +0200 Subject: [PATCH 1/2] refining csv delimiter treatment changing the year in copyright line in all files --- CHANGES.md | 4 ++++ LICENSE.md | 2 +- README.md | 4 ++-- cbit | 35 ++++++++++++++++++++++++++--------- 4 files changed, 33 insertions(+), 12 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 58f5cb0..54937e9 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,9 @@ # cbit change log +## r26 +* refining csv delimiter treatment +* changing the year in copyright line in all files + ## r25 * updating README.md * renaming cbit_config.h to cbit_config diff --git a/LICENSE.md b/LICENSE.md index 0487c61..2200f6c 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ # The MIT License (MIT) -**Copyright (c) 2014-2016 Stephan Eisfeld** +**Copyright (c) 2014-2017 Stephan Eisfeld** Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index fc993ac..b24d933 100644 --- a/README.md +++ b/README.md @@ -179,7 +179,7 @@ $ ./cbit -h 20:00:00 20:00:00 The MIT License (MIT) - see LICENSE file 20:00:00 -20:00:00 cbit r24 Copyright (c) 2014-2016 Stephan Eisfeld +20:00:00 cbit r24 Copyright (c) 2014-2017 Stephan Eisfeld 20:00:00 20:00:00 exiting ``` @@ -353,7 +353,7 @@ The filename is derived from the csv file name - given to `-f` - and the current # The MIT License (MIT) -**Copyright (c) 2014-2016 Stephan Eisfeld** +**Copyright (c) 2014-2017 Stephan Eisfeld** Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/cbit b/cbit index cd16197..562fc29 100755 --- a/cbit +++ b/cbit @@ -12,6 +12,7 @@ $templates_with_unsupported_version = array(); $templates_with_unknown_variables = array(); $jobsummary = array(); $jobsfailed = array(); +$supported_csv_delimiters = array(';', ','); //which cucm:db version supports which axl api version(s) $cucmdb_supported_axl_apis['10.5'] = array('10.5', '10.0', '9.1', '9.0', '8.5', '8.0'); @@ -132,9 +133,9 @@ function is_cucmdb_version_supported($supported_axl_apis, $version) { } //function detect_csv_delimiter -function detect_csv_delimiter($csv_data) { - $csv_delimiters = array(';', ','); +function detect_csv_delimiter($csv_data, $csv_delimiters) { $csv_delimiters_results = array(array(), array()); + //look for supported csv delimiters in csv data, return csv delimiter with highest probability foreach ($csv_delimiters as $delimiter_key => $delimiter) { foreach ($csv_data as $csv_key => $csv) { $csv_delimiters_results[$delimiter_key][$csv_key] = count(preg_split('/['.$delimiter.']/', $csv)) - 1; @@ -195,7 +196,7 @@ if (isset($options['h'])) { print(substr($time, -8)."\n"); print(substr($time, -8)." The MIT License (MIT) - see LICENSE file\n"); print(substr($time, -8)."\n"); - print(substr($time, -8)." $uname Copyright (c) 2014-2016 Stephan Eisfeld\n"); + print(substr($time, -8)." $uname Copyright (c) 2014-2017 Stephan Eisfeld\n"); print(substr($time, -8)."\n"); print(substr($time, -8)." exiting\n"); file_put_contents($log_file, "\n$time displaying help", FILE_APPEND | LOCK_EX); @@ -352,23 +353,39 @@ else { $csv_data[$csv_data_key] = trim($csv_data[$csv_data_key]); } - //detect and compare csv delimiter + //detect, validate and compare csv delimiter $time = date('Y-m-d H:i:s'); print(substr($time, -8)." checking csv delimiter"); - $detected_csv_delimiter = detect_csv_delimiter($csv_data); + //check if the configured csv delimiter is supported + if (!in_array($csv_delimiter, $supported_csv_delimiters)) { + print(" [".ansi('red', 'fail')."]\n"); + print(substr($time, -8)." configured: $csv_delimiter\n"); + print(substr($time, -8)." supported: ".implode(' ', $supported_csv_delimiters)."\n"); + print(substr($time, -8)." exiting\n"); + file_put_contents($log_file, "\n$time configured csv delimiter: $csv_delimiter", FILE_APPEND | LOCK_EX); + file_put_contents($log_file, "\n$time supported csv delimiters: ".implode(' ', $supported_csv_delimiters), FILE_APPEND | LOCK_EX); + file_put_contents($log_file, "\n$time configured csv delimiter not supported", FILE_APPEND | LOCK_EX); + file_put_contents($log_file, "\n$time $uname finish\n", FILE_APPEND | LOCK_EX); + die(); + } + //check if the configured csv delimiter matches the detected csv delimiter + $detected_csv_delimiter = detect_csv_delimiter($csv_data, $supported_csv_delimiters); if ($csv_delimiter == $detected_csv_delimiter) { print(" [".ansi('green', 'ok')."]\n"); print(substr($time, -8)." configured: $csv_delimiter\n"); print(substr($time, -8)." detected: $detected_csv_delimiter\n"); - file_put_contents($log_file, "\n$time configured csv delimiter: $csv_delimiter | detected csv delimiter: $detected_csv_delimiter", FILE_APPEND | LOCK_EX); + file_put_contents($log_file, "\n$time configured csv delimiter: $csv_delimiter", FILE_APPEND | LOCK_EX); + file_put_contents($log_file, "\n$time detected csv delimiter: $detected_csv_delimiter", FILE_APPEND | LOCK_EX); + file_put_contents($log_file, "\n$time configured csv delimiter supported", FILE_APPEND | LOCK_EX); } - //seems we have a delimiter missmatch, ask user how to proceed + //seems we have a csv delimiter missmatch, ask user how to proceed else { print(" [".ansi('red', 'fail')."]\n"); print(substr($time, -8)." configured: $csv_delimiter\n"); print(substr($time, -8)." detected: $detected_csv_delimiter\n"); - file_put_contents($log_file, "\n$time configured csv delimiter: $csv_delimiter | detected csv delimiter: $detected_csv_delimiter", FILE_APPEND | LOCK_EX); - file_put_contents($log_file, "\n$time csv delimiter missmatch, asking for override", FILE_APPEND | LOCK_EX); + file_put_contents($log_file, "\n$time configured csv delimiter: $csv_delimiter", FILE_APPEND | LOCK_EX); + file_put_contents($log_file, "\n$time detected csv delimiter: $detected_csv_delimiter", FILE_APPEND | LOCK_EX); + file_put_contents($log_file, "\n$time csv delimiter missmatch, asking for override permission", FILE_APPEND | LOCK_EX); //request green light from user to go ahead and use detected csv delimiter, else exit print(substr($time, -8)." use detected? (y/[n]): "); From 101c10339c99853bb5a506120291bd09e5e7ba62 Mon Sep 17 00:00:00 2001 From: Stephan Eisfeld Date: Mon, 17 Apr 2017 23:22:52 +0200 Subject: [PATCH 2/2] bumping version to r26 --- cbit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cbit b/cbit index 562fc29..c13ab38 100755 --- a/cbit +++ b/cbit @@ -3,7 +3,7 @@ //cbit - cucm bulk import tool //name and version -$uname = 'cbit r25'; +$uname = 'cbit r26'; //define some arrays $templates = array();