Created
August 12, 2020 18:01
-
-
Save enko/5d471e934b82491f0000496454ad8be0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import * as shelljs from 'shelljs'; | |
import { Logger } from '@flyacts/backend-logger'; | |
import * as path from 'path'; | |
import * as fs from 'fs/promises'; | |
import * as os from 'os'; | |
const logger = new Logger(); | |
(async function(){ | |
const settingsPath = path.resolve( | |
os.homedir(), | |
'bitwarden-secrets.json' | |
); | |
const settings = JSON.parse(await fs.readFile(settingsPath, 'utf-8')); | |
const server = settings.server; | |
logger.info(`Seeding secrets into deployment structure from ${server}`); | |
shelljs.exec( | |
'npm run -s bw -- config server ', | |
{ silent: true } | |
); | |
const user = settings.username; | |
const password = settings.password; | |
logger.info(`logging into ${server}`) | |
const accessKey = shelljs.exec( | |
`npm run -s bw -- login ${user} ${password} --raw`, | |
{ silent: true } | |
).stdout; | |
logger.info(`Fetching secrets from ${server}`); | |
const itemData = shelljs.exec( | |
`npm run -s bw -- --session=${accessKey} list items`, | |
{ silent: true } | |
).stdout; | |
const items = JSON.parse(itemData); | |
for(const item of items) { | |
const itemPath = path.resolve(__dirname, '..', item.name); | |
logger.info(`Writing secret to ${itemPath}`); | |
await fs.writeFile(itemPath, item.notes); | |
} | |
logger.info(`Logging out from ${server}`); | |
shelljs.exec('npm run -s bw -- logout', { silent: true }); | |
})() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment