+function getRemoteObjectOrDie (program: any, settings: Settings) {
+ if (!program['url'] || !program['username'] || !program['password']) {
+ // No remote and we don't have program parameters: throw
+ if (settings.remotes.length === 0) {
+ if (!program[ 'url' ]) console.error('--url field is required.')
+ if (!program[ 'username' ]) console.error('--username field is required.')
+ if (!program[ 'password' ]) console.error('--password field is required.')
+
+ return process.exit(-1)
+ }
+
+ let url: string = program['url']
+ let username: string = program['username']
+ let password: string = program['password']
+
+ if (!url) {
+ url = settings.default !== -1
+ ? settings.remotes[settings.default]
+ : settings.remotes[0]
+ }
+
+ if (!username) username = netrc.machines[url].login
+ if (!password) password = netrc.machines[url].password
+
+ return { url, username, password }
+ }
+
+ return {
+ url: program[ 'url' ],
+ username: program[ 'username' ],
+ password: program[ 'password' ]
+ }
+}