-async function setInstance (url: string, username: string, password: string) {
- return new Promise((res, rej): void => {
- getSettings()
- .then(async settings => {
- if (settings.remotes.indexOf(url) === -1) {
- settings.remotes.push(url)
- }
- await writeSettings(settings)
- netrc.machines[url] = { login: username, password }
- netrc.save()
- res()
- })
- .catch(err => rej(err))
- })
+async function setInstance (url: string, username: string, password: string, isDefault: boolean) {
+ const [ settings, netrc ] = await Promise.all([ getSettings(), getNetrc() ])
+
+ if (settings.remotes.includes(url) === false) {
+ settings.remotes.push(url)
+ }
+
+ if (isDefault || settings.remotes.length === 1) {
+ settings.default = settings.remotes.length - 1
+ }
+
+ await writeSettings(settings)
+
+ netrc.machines[url] = { login: username, password }
+ await netrc.save()