+function getServerCredentials (program: Command) {
+ return Promise.all([ getSettings(), getNetrc() ])
+ .then(([ settings, netrc ]) => {
+ return getRemoteObjectOrDie(program, settings, netrc)
+ })
+}
+
+function buildServer (url: string) {
+ loadLanguages()
+ return new PeerTubeServer({ url })
+}
+
+async function assignToken (server: PeerTubeServer, username: string, password: string) {
+ const bodyClient = await server.login.getClient()
+ const client = { id: bodyClient.client_id, secret: bodyClient.client_secret }
+
+ const body = await server.login.login({ client, user: { username, password } })
+
+ server.accessToken = body.access_token
+}
+
+function getLogger (logLevel = 'info') {
+ const logLevels = {
+ 0: 0,
+ error: 0,
+ 1: 1,
+ warn: 1,
+ 2: 2,
+ info: 2,
+ 3: 3,
+ verbose: 3,
+ 4: 4,
+ debug: 4
+ }
+
+ const logger = createLogger({
+ levels: logLevels,
+ format: format.combine(
+ format.splat(),
+ format.simple()
+ ),
+ transports: [
+ new (transports.Console)({
+ level: logLevel
+ })
+ ]
+ })
+
+ return logger
+}
+