-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Expand file tree
/
Copy pathstandardize_all
More file actions
executable file
·101 lines (82 loc) · 2.36 KB
/
standardize_all
File metadata and controls
executable file
·101 lines (82 loc) · 2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/usr/bin/env node
/**
* @license Apache-2.0
*
* Copyright (c) 2026 The Stdlib Authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
'use strict';
/*
* Standardize all `manifest.json` files by enforcing consistent key ordering.
*
* To enable verbose logging, set the `DEBUG` environment variable.
*
* ``` bash
* $ DEBUG=* standardize_all
* ```
*/
// MODULES //
var join = require( 'path' ).join;
var resolve = require( 'path' ).resolve;
var logger = require( 'debug' );
var glob = require( 'glob' ).sync;
var readJSON = require( '@stdlib/fs/read-json' ).sync;
var writeFile = require( '@stdlib/fs/write-file' ).sync;
var rootDir = require( '@stdlib/_tools/utils/root-dir' );
var standardize = require( './../standardize' );
// VARIABLES //
var debug = logger( 'manifest-json:standardize-all' );
var ROOT = resolve( rootDir(), 'lib', 'node_modules' );
// FUNCTIONS //
/**
* Standardizes all `manifest.json` files by enforcing consistent key ordering.
*
* @private
*/
function main() {
var files;
var opts;
var out;
var i;
debug( 'Searching for manifest.json files in %s.', ROOT );
opts = {
'cwd': ROOT,
'ignore': [
'node_modules/**',
'**/build/**',
'**/snippets/**'
],
'realpath': true
};
files = glob( '**/@stdlib/**/manifest.json', opts );
debug( 'Found %d files.', files.length );
for ( i = 0; i < files.length; i++ ) {
debug( 'Processing file: %s (%d of %d).', files[ i ], i+1, files.length );
out = readJSON( files[ i ] );
if ( out instanceof Error ) {
debug( 'Error reading file: %s. Skipping.', out.message );
continue;
}
out = standardize( out );
debug( 'Serializing manifest data.' );
out = JSON.stringify( out, null, 2 ); // 2-space indentation
debug( 'Writing manifest data to file.' );
writeFile( files[ i ], out+'\n', {
'encoding': 'utf8'
});
}
debug( 'Finished standardizing all manifest.json files.' );
}
// MAIN //
main();