2018-11-25 18:05:44 -05:00
|
|
|
#!/usr/bin/env node
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @fileoverview
|
|
|
|
* Script to upload a source en.json file to a particular transifex project resource.
|
|
|
|
* Expects that the project and resource have already been defined in Transifex, and that
|
|
|
|
* the person running the script has the the TX_TOKEN environment variable set to an api
|
|
|
|
* token that has developer access.
|
|
|
|
*/
|
|
|
|
|
|
|
|
const fs = require('fs');
|
|
|
|
const path = require('path');
|
|
|
|
const transifex = require('transifex');
|
|
|
|
|
|
|
|
const args = process.argv.slice(2);
|
|
|
|
|
|
|
|
const usage = `
|
2018-11-27 11:05:23 -05:00
|
|
|
Push English source strings to Transifex. Usage:
|
|
|
|
node tx-push-src.js tx-project tx-resource english-json-file
|
2018-11-25 18:05:44 -05:00
|
|
|
tx-project: the project slug on transifex
|
|
|
|
tx-resource: the resource slug on transifex
|
|
|
|
english-json-file: path to the en.json source
|
|
|
|
NOTE: TX_TOKEN environment variable needs to be set with a Transifex API token. See
|
|
|
|
the Localization page on the GUI wiki for information about setting up Transifex.
|
|
|
|
`;
|
|
|
|
|
|
|
|
// Exit if missing arguments or TX_TOKEN
|
|
|
|
if (args.length < 3 || !process.env.TX_TOKEN) {
|
|
|
|
process.stdout.write(usage);
|
|
|
|
process.exit(1);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Globals
|
|
|
|
const PROJECT = args[0];
|
|
|
|
const RESOURCE = args[1];
|
|
|
|
const TX = new transifex({
|
|
|
|
project_slug: PROJECT,
|
|
|
|
credential: 'api:' + process.env.TX_TOKEN
|
|
|
|
});
|
|
|
|
|
|
|
|
let en = fs.readFileSync(path.resolve(args[2]));
|
|
|
|
en = JSON.parse(en);
|
|
|
|
|
|
|
|
// update Transifex with English source
|
|
|
|
TX.uploadSourceLanguageMethod(PROJECT, RESOURCE, {content: JSON.stringify(en)}, (err) => {
|
|
|
|
if (err) {
|
|
|
|
console.error(err); // eslint-disable-line no-console
|
|
|
|
process.exit(1);
|
|
|
|
}
|
|
|
|
process.exit(0);
|
|
|
|
});
|