mirror of
https://github.com/Art051/immich.git
synced 2025-08-11 19:29:00 +00:00
* Allow building and installing cli * feat: add format fix * docs: remove cli folder * feat: use immich scoped package * feat: rewrite cli readme * docs: add info on running without building * cleanup * chore: remove import functionality from cli * feat: add logout to cli * docs: add todo for file format from server * docs: add compilation step to cli * fix: success message spacing * feat: can create albums * fix: add check step to cli * fix: typos * feat: pull file formats from server * chore: use crawl service from server * chore: fix lint * docs: add cli documentation * chore: rename ignore pattern * chore: add version number to cli * feat: use sdk * fix: cleanup * feat: album name on windows * chore: remove skipped asset field * feat: add more info to server-info command * chore: cleanup * chore: remove unneeded packages * chore: fix docs links * feat: add cli v2 milestone * fix: set correct cli date --------- Co-authored-by: Alex <alex.tran1502@gmail.com>
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { ImmichApi } from '../api/client';
|
|
import path from 'node:path';
|
|
import { SessionService } from '../services/session.service';
|
|
import { LoginError } from '../cores/errors/login-error';
|
|
import { exit } from 'node:process';
|
|
import os from 'os';
|
|
import { ServerVersionResponseDto, UserResponseDto } from 'src/api/open-api';
|
|
|
|
export abstract class BaseCommand {
|
|
protected sessionService!: SessionService;
|
|
protected immichApi!: ImmichApi;
|
|
protected user!: UserResponseDto;
|
|
protected serverVersion!: ServerVersionResponseDto;
|
|
|
|
protected configDir;
|
|
protected authPath;
|
|
|
|
constructor() {
|
|
const userHomeDir = os.homedir();
|
|
this.configDir = path.join(userHomeDir, '.config/immich/');
|
|
this.sessionService = new SessionService(this.configDir);
|
|
this.authPath = path.join(this.configDir, 'auth.yml');
|
|
}
|
|
|
|
public async connect(): Promise<void> {
|
|
try {
|
|
this.immichApi = await this.sessionService.connect();
|
|
} catch (error) {
|
|
if (error instanceof LoginError) {
|
|
console.log(error.message);
|
|
exit(1);
|
|
} else {
|
|
throw error;
|
|
}
|
|
}
|
|
}
|
|
}
|