Skip to content

Commit

Permalink
chore: add runner script to create packages
Browse files Browse the repository at this point in the history
  • Loading branch information
gunjjoshi committed Sep 20, 2024
1 parent 990ffea commit b301b79
Showing 1 changed file with 90 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
#!/usr/bin/env node

/**
* @license Apache-2.0
*
* Copyright (c) 2024 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';

// MODULES //

var resolve = require( 'path' ).resolve;
var shell = require( 'child_process' ).execSync; // eslint-disable-line node/no-sync
var existsSync = require( '@stdlib/fs/exists' ).sync;
var objectKeys = require( '@stdlib/utils/keys' );
var uppercase = require( '@stdlib/string/base/uppercase' );
var rootDir = require( '@stdlib/_tools/utils/root-dir' );
var log = require( '@stdlib/console/log' );
var DATA = require( './data.json' );


// VARIABLES //

var CREATE_ONLY = 1;
var SCAFFOLD_SCRIPT = resolve( __dirname, 'scaffold.sh' );
var ROOT_DIR = resolve( rootDir(), 'lib', 'node_modules' );


// MAIN //

/**
* Main execution sequence.
*
* @private
*/
function main() {
var names;
var keys;
var envs;
var str;
var cmd;
var p;
var k;
var v;
var o;
var i;
var j;

keys = objectKeys( DATA );
for ( i = 0; i < keys.length; i++ ) {
o = DATA[ keys[ i ] ];
p = resolve( ROOT_DIR, '@stdlib/math/iter/special', o.alias, 'package.json' );
if ( existsSync( p ) ) {
if ( CREATE_ONLY ) {
log( 'Package already exists. Skipping @%s...', 'stdlib/math/iter/special/' + o.alias );
continue;
}
log( 'Updating package: @%s...', 'stdlib/math/iter/special/' + o.alias );
} else {
log( 'Creating package: @%s...', 'stdlib/math/iter/special/' + o.alias );
}
names = objectKeys( o );
envs = [];
for ( j = 0; j < names.length; j++ ) {
k = names[ j ];
v = o[ k ];
str = uppercase( k );
str += '=';
str += '\'' + v + '\'';
envs.push( str );
}
cmd = envs.join( ' ' ) + ' . ' + SCAFFOLD_SCRIPT;
shell( cmd );
}
}

main();

0 comments on commit b301b79

Please sign in to comment.