UNPKG

google-auth-token-generator

Version:

[![Image from Gyazo](https://i.gyazo.com/92b73b1253594a5c39761079492cb9da.gif)](https://gyazo.com/92b73b1253594a5c39761079492cb9da)

68 lines (53 loc) 2.2 kB
#!/usr/bin/env node 'use strict' const fs = require('fs'); const permissions = require('./permissions'); const authorize = require('./authorize'); const inquirer = require('inquirer'); const CREDENTIALS_FILE_NAME = `credentials.json`; const ERROR_MSG = `ERROR: Can not open ${CREDENTIALS_FILE_NAME}. Get ${CREDENTIALS_FILE_NAME} first from the Google API site.`; (async () => { console.log(`[Google API Token Generator]`); console.log(`Start checking ${CREDENTIALS_FILE_NAME} ...`); //credentials.jsonが無かったら終わり if(!fs.existsSync(CREDENTIALS_FILE_NAME)){ console.error(ERROR_MSG); return; } try { //read file const credentials = await fs.readFileSync(CREDENTIALS_FILE_NAME, 'utf8'); //API Select const answers1st = await inquirer.prompt([{ type: 'list', name: 'API', message: 'Which one do you use?', choices: Object.keys(permissions), //filter: val => val.toLowerCase() }]); // console.log(answers1st.API,permissions[`${answers1st.API}`]); const permissionsList = permissions[answers1st.API].list.map(item => {return {name: item}}); //Permission Select const answers2nd = await inquirer.prompt([{ type: 'checkbox', message: `Select Permissions (see: ${permissions[answers1st.API].reference})`, name: 'Permissions', choices: permissionsList, validate: ( answer ) => { if(answer.length < 1) return "You must choose at least one topping."; return true; } }],( answers ) => console.log( JSON.stringify(answers, null, " "))); // console.log(answers2nd); const auth = await authorize(JSON.parse(credentials), answers2nd.Permissions); // console.log(auth); } catch (error) { // console.log(`ほげ:`,error.message); if(error.code === 'ENOENT'){ console.log(`---------------`); console.error(ERROR_MSG); console.log(`---------------`); } throw new Error(error); } })();