feat: extract the hostname of devstar domain for local SSH key naming

This commit is contained in:
Levi Yan
2025-01-07 23:22:06 +08:00
parent 0643ff8596
commit 7e470461eb

View File

@@ -14,11 +14,21 @@ export default class User {
private userToken: string | undefined;
private usernameKey: string = 'devstarUsername'
private userTokenKey: string = 'devstarUserToken'
private devstarHostname: string;
constructor(context: vscode.ExtensionContext) {
this.context = context;
this.username = this.context.globalState.get(this.usernameKey);
this.userToken = this.context.globalState.get(this.userTokenKey);
// 提取devstar domain的主域名用于本地ssh key的命名
let devstarDomainFromConfig: string|undefined;
let devstarDomainURL: string;
devstarDomainFromConfig = vscode.workspace.getConfiguration('devstar').get('devstarDomain')
// 如果没有配置devstar domain则默认domain为https://devstar.cn
devstarDomainURL = (devstarDomainFromConfig === undefined || devstarDomainFromConfig === "") ? 'https://devstar.cn' : devstarDomainFromConfig;
let parsedUrl = new URL(devstarDomainURL);
this.devstarHostname = parsedUrl.hostname.replace(/\./g, '_'); //提取hostname并用下划线替换.
}
private isLogged() {
@@ -61,7 +71,7 @@ export default class User {
return '';
}
return path.join(os.homedir(), '.ssh', `id_rsa_${this.username}`)
return path.join(os.homedir(), '.ssh', `id_rsa_${this.username}_${this.devstarHostname}`)
}
public getUserPublicKeyPath(): string {
@@ -69,7 +79,7 @@ export default class User {
return '';
}
return path.join(os.homedir(), '.ssh', `id_rsa_${this.username}.pub`)
return path.join(os.homedir(), '.ssh', `id_rsa_${this.username}_${this.devstarHostname}.pub`)
}
public existUserPublicKey(): boolean {