New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@alexpekurovsky/logparser

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@alexpekurovsky/logparser - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

\

40

bin.js
#!/usr/bin/env node
var app = require('logparser');
var app = require('@alexpekurovsky/logparser');
var path=(process.argv[2] ? process.argv[2] : null);
var pattern=(process.argv[3] ? process.argv[3] : "*");
var recursive=(process.argv[4] ? process.argv[4] : false);
var ArgumentParser = require('argparse').ArgumentParser;
var parser = new ArgumentParser({
addHelp: true,
description: 'Argparse example'
});
if (!path) {
console.log("No file or directory specified");
}
parser.addArgument(
'path',
{
type: 'string',
help: 'Filename or directory to work on'
}
);
parser.addArgument(
['-p', '--pattern'],
{
defaultValue: "*",
type: 'string',
help: 'Filemask to match files. See https://en.wikipedia.org/wiki/Glob_(programming)'
}
);
parser.addArgument(
['-r', '--recursive'],
{
defaultValue: false,
action: 'storeTrue',
help: 'Specify this option if you want to check subdirectories for files'
}
);
app.load(path, pattern, recursive);
var args = parser.parseArgs();
app.load(args.path, args.pattern, args.recursive);

61

index.js
var fs = require('fs'),
readline = require('readline'),
stream = require('stream'),
glob = require('glob');
glob = require('glob'),
promptSync = require('prompt-sync')();
var load = function (path, pattern, recursive) {
try {
if (fs.existsSync(path) ) {
var stats = fs.lstatSync(path);

@@ -23,4 +24,4 @@ if (stats.isDirectory()) {

}
} catch(e) {
console.log("No such file or directory");
} else {
console.log("No such file or directory " + path);
}

@@ -32,2 +33,22 @@ }

console.log('Processing ' + filename + ' ...');
if (fs.existsSync(filename + '.csv')) {
console.log('`-> ' + filename + '.csv exists');
var answer = null;
answer = promptSync(' `-> File to be created ' + filename + '.csv exists. Do you want to [Override/Skip] it: ');
while (['O','S'].indexOf(answer) == -1) {
answer = promptSync(' `-> Please answer exactly O/S: ');
}
switch(answer) {
case 'O':
console.log(' `-> Truncating output file ' + filename + '.csv');
fs.truncateSync(filename + '.csv', 0);
break;
case 'S':
console.log(' `-> You skipped processing of ' + filename);
return;
break;
default:
break;
}
}
var instream = fs.createReadStream(filename);

@@ -46,7 +67,11 @@ var outstream = new stream;

rl.on('line', function(line) {
var log = JSON.parse(line);
for (var title of Object.keys(log)) {
if (headers.indexOf(title) == -1) {
headers.push(title);
try {
var log = JSON.parse(line);
for (var title of Object.keys(log)) {
if (headers.indexOf(title) == -1) {
headers.push(title);
}
}
} catch(e) {
console.log("Line isn't JSON: " + line);
}

@@ -74,12 +99,16 @@ });

rl.on('line', function(line) {
var log = JSON.parse(line);
var values = [];
for (var key of headers) {
if (typeof log[key] != 'undefined') {
values.push(decodeURIComponent(log[key]));
} else {
values.push('');
try {
var log = JSON.parse(line);
var values = [];
for (var key of headers) {
if (typeof log[key] != 'undefined') {
values.push(decodeURIComponent(log[key]));
} else {
values.push('');
}
}
filesaver(filename + ".csv", arraytocsv(values));
} catch(e) {
console.log("Line isn't JSON: " + line);
}
filesaver(filename + ".csv", arraytocsv(values));
});

@@ -86,0 +115,0 @@

{
"name": "@alexpekurovsky/logparser",
"version": "1.0.1",
"version": "1.0.2",
"description": "",

@@ -18,3 +18,5 @@ "main": "index.js",

"fs": "^0.0.2",
"readline-sync": "^1.4.4"
"readline-sync": "^1.4.4",
"prompt-sync": "^4.1.4",
"argparse": "^1.0.7"
},

@@ -21,0 +23,0 @@ "author": "Alex Pekurovsky <alexpekurovskiy@gmail.com>",

@@ -20,4 +20,4 @@ # LogParser

$ logparser DIRNAME # to process all files in dir
$ logparser DIRNAME PATTERN # to process all files in dir matching mattern
$ logparser DIRNAME PATTERN true # to process all files in dir and subdirs matching pattern
$ logparser DIRNAME -p PATTERN # to process all files in dir matching mattern
$ logparser DIRNAME -p PATTERN -r # to process all files in dir and subdirs matching pattern
```

@@ -29,4 +29,4 @@

$ logparser /var/log/IronSourceApp
$ logparser /var/log/IronSourceApp '*.log'
$ logparser /var/log 'IS_*.log' true
$ logparser /var/log/IronSourceApp -p '*.log'
$ logparser /var/log -p 'IS_*.log' -r
```

@@ -38,24 +38,47 @@

$ ll
-rw-r--r-- 1 root root 6651236352 Jun 28 01:55 big.log
-rw-r--r-- 1 root root 2822 Jun 27 23:20 light.log
-rwxr-xr-x 1 root root 238 Jun 28 01:54 makebig.sh
-rw-r--r-- 1 root root 51962784 Jun 27 22:40 Mundo-json-2013-01-03.log
-rw-r--r-- 1 root root 6651236352 Jun 28 01:55 big.log
-rw-r--r-- 1 root root 3815110456 Jun 28 02:18 big.log.csv
-rw-r--r-- 1 root root 2822 Jun 27 23:20 light.log
-rw-r--r-- 1 root root 51962784 Jun 27 22:40 Mundo-json-2013-01-03.log
-rw-r--r-- 1 root root 0 Jun 28 12:01 Mundo-json-2013-01-03.log.csv
$ logparser -h
usage: logparser [-h] [-p PATTERN] [-r] path
Argparse example
Positional arguments:
path Filename or directory to work on
Optional arguments:
-h, --help Show this help message and exit.
-p PATTERN, --pattern PATTERN
Filemask to match files. See https://en.wikipedia.
org/wiki/Glob_(programming)
-r, --recursive Specify this option if you want to check
subdirectories for files
$ logparser . '*.log'
Processing big.log ...
`-> big.log.csv exists
`-> File to be created big.log.csv exists. Do you want to [Override/Skip] it:
`-> Please answer exactly O/S: S
`-> You skipped processing of big.log
Processing light.log ...
Processing Mundo-json-2013-01-03.log ...
`-> Mundo-json-2013-01-03.log.csv exists
`-> File to be created Mundo-json-2013-01-03.log.csv exists. Do you want to [Override/Skip] it: O
`-> Truncating output file Mundo-json-2013-01-03.log.csv
Processing light.log completed.
Processing Mundo-json-2013-01-03.log completed.
Processing big.log completed.
$ ll -h
-rw-r--r-- 1 root root 6,2G Jun 28 01:55 big.log
-rw-r--r-- 1 root root 3,6G Jun 28 02:18 big.log.csv
-rw-r--r-- 1 root root 2,8K Jun 27 23:20 light.log
-rw-r--r-- 1 root root 1,8K Jun 28 01:56 light.log.csv
-rwxr-xr-x 1 root root 238 Jun 28 01:54 makebig.sh
-rw-r--r-- 1 root root 50M Jun 27 22:40 Mundo-json-2013-01-03.log
-rw-r--r-- 1 root root 29M Jun 28 01:56 Mundo-json-2013-01-03.log.csv
-rw-r--r-- 1 root root 6,2G Jun 28 01:55 big.log
-rw-r--r-- 1 root root 3,6G Jun 28 02:18 big.log.csv
-rw-r--r-- 1 root root 2,8K Jun 27 23:20 light.log
-rw-r--r-- 1 root root 1,8K Jun 28 12:02 light.log.csv
-rw-r--r-- 1 root root 50M Jun 27 22:40 Mundo-json-2013-01-03.log
-rw-r--r-- 1 root root 29M Jun 28 12:02 Mundo-json-2013-01-03.log.csv
```

@@ -62,0 +85,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc