@@ -9,7 +9,8 @@ export default class ShowFile extends Command {
99
1010 static flags = {
1111 help : flags . help ( { char : 'h' } ) ,
12- file : flags . string ( { char : 'f' , description : 'formatted file to be shown' } )
12+ file : flags . string ( { char : 'f' , description : 'formatted file to be shown' } ) ,
13+ num : flags . string ( { char : 'n' , description : 'rows to show' } )
1314 }
1415
1516 static args = [ { name : 'file' } ]
@@ -19,6 +20,9 @@ export default class ShowFile extends Command {
1920 const { args, flags} = this . parse ( ShowFile )
2021
2122 args . file = this . getFilePath ( flags , args )
23+ args . num = this . getFileLinesToShow ( flags )
24+
25+ // args.rowsToShow
2226
2327 this . checkParameters ( flags , args )
2428 this . showFile ( args )
@@ -28,83 +32,71 @@ export default class ShowFile extends Command {
2832 if ( args . file )
2933 return args . file
3034 if ( flags . file )
31- return flags . file
35+ return flags . file9
3236 Logger . error ( this , 'File path not passed' )
3337 }
3438
39+ private getFileLinesToShow ( flags : any ) {
40+ return flags . num || 10
41+ }
3542 // tslint:disable-next-line:no-unused
3643 private checkParameters ( flags : unknown , args : { [ p : string ] : any } ) {
3744 if ( args . file === undefined || args . file === '' )
3845 Logger . error ( this , 'File path is empty' )
3946 // others already checked
4047 }
4148
42-
4349 private showFile ( args : any ) {
44-
4550 let data = Utilities . getStringFromFile ( this , args . file )
46-
4751 let rows = data . split ( '\n' )
48-
4952 let widthArray = [ ]
5053
51- let recordsToShow = 10
54+ let recordsToShow = parseInt ( args . num , 10 ) + 1
5255
53- for ( let i = 0 ; i < rows [ 0 ] . length ; i ++ ) {
54- widthArray [ i ] = 0
56+ for ( let i = 0 ; i < rows [ 0 ] . length ; i ++ ) {
57+ widthArray [ i ] = 0
5558 }
5659
57- if ( recordsToShow > rows . length ) {
58- recordsToShow = rows . length
60+ if ( recordsToShow > rows . length ) {
61+ recordsToShow = rows . length - 1
5962 }
6063
61- for ( let i = 0 ; i < recordsToShow ; i ++ ) {
62- let row = rows [ i ] . split ( "," ) ;
63- let s = ''
64- for ( let j = 0 ; j < row . length ; j ++ ) {
65- s = s + row [ j ]
66- if ( widthArray [ j ] < row [ j ] . length ) {
67- widthArray [ j ] = row [ j ] . length
68- }
64+ for ( let i = 0 ; i < recordsToShow ; i ++ ) {
65+ let row = rows [ i ] . split ( ',' )
66+ for ( let j = 0 ; j < row . length ; j ++ ) {
67+ if ( widthArray [ j ] < row [ j ] . length ) {
68+ widthArray [ j ] = row [ j ] . length
6969 }
70+ }
7071 }
7172
72- this . printRow ( rows [ 0 ] . split ( "," ) , widthArray , "+" , true )
73- for ( let i = 0 ; i < recordsToShow - 1 ; i ++ ) {
74- let row = rows [ i ]
75- this . printRow ( row . split ( ',' ) , widthArray , '|' , false )
76- this . printRow ( row . split ( ',' ) , widthArray , '+' , true )
73+ this . printRow ( rows [ 0 ] . split ( ',' ) , widthArray , '+' , true )
74+ for ( let i = 0 ; i < recordsToShow ; i ++ ) {
75+ let row = rows [ i ]
76+ this . printRow ( row . split ( ',' ) , widthArray , '|' , false )
77+ this . printRow ( row . split ( ',' ) , widthArray , '+' , true )
7778 }
78-
79+ this . log ( `showing top ${ recordsToShow } rows.` )
7980 }
8081
81- private printRow ( row : any , widthArray : any , seperator : any , isLineSeparator : any ) {
82- let output = seperator
83- for ( let i = 0 ; i < row . length ; i ++ ) {
84- let totalSize = widthArray [ i ]
85-
86- let dataLength = 0 ;
87- let space = "-"
88- if ( ! isLineSeparator ) {
89- let data = row [ i ]
90- data = data . split ( / \r / ) [ 0 ]
91- output += data
92- dataLength = data . length
93- space = ' '
94- // this.log(`The output log upto here is : ${output}`)
95- }
96-
97- for ( let j = 0 ; j < totalSize - dataLength ; j ++ ) {
98- output += space
99- }
100-
101- output += seperator
102- if ( ! isLineSeparator ) {
103- // this.log(`The output log upto here is : ${output}`)
104- // Logger.info(this, output)
105- }
82+ private printRow ( row : any , widthArray : any , seperator : any , isLineSeparator : any ) {
83+ let output = seperator
84+ for ( let i = 0 ; i < row . length ; i ++ ) {
85+ let totalSize = widthArray [ i ]
86+ let dataLength = 0
87+ let space = '-'
88+ if ( ! isLineSeparator ) {
89+ let data = row [ i ]
90+ data = data . split ( / \r / ) [ 0 ]
91+ output += data
92+ dataLength = data . length
93+ space = ' '
10694 }
107- this . log ( '' + output )
108- output = ''
95+ for ( let j = 0 ; j < totalSize - dataLength ; j ++ ) {
96+ output += space
97+ }
98+ output += seperator
99+ }
100+ this . log ( '' + output )
109101 }
110102}
0 commit comments