UNPKG

sfdx-hardis

Version:

Swiss-army-knife Toolbox for Salesforce. Allows you to define a complete CD/CD Pipeline. Orchestrate base commands and assist users with interactive wizards

63 lines (57 loc) 2.81 kB
/* jscpd:ignore-start */ import { SfCommand, Flags } from '@salesforce/sf-plugins-core'; import { Messages } from '@salesforce/core'; import { uxLog } from '../../../common/utils/index.js'; import { getConfig } from '../../../config/index.js'; Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); const messages = Messages.loadMessages('sfdx-hardis', 'org'); export default class ConfigGet extends SfCommand { static title = 'Deploy metadata sources to org'; static description = ` ## Command Behavior **Retrieves and displays the sfdx-hardis configuration for a specified level.** This command allows you to inspect the configuration that is currently in effect for your project, which is useful for debugging and understanding how sfdx-hardis will behave. - **Configuration levels:** It can retrieve configuration from three different levels: - **Project:** The configuration defined in the project's \`.sfdx-hardis.yml\` file. - **Branch:** The configuration defined in a branch-specific configuration file (e.g., \`.sfdx-hardis.production.yml\`). - **User:** The global user-level configuration. ## Technical explanations The command's logic is straightforward: - **\`getConfig\` function:** It calls the \`getConfig\` utility function, passing the desired configuration level as an argument. - **Configuration loading:** The \`getConfig\` function is responsible for finding the appropriate configuration file, reading its contents, and parsing it as YAML or JSON. - **Output:** The retrieved configuration is then displayed to the user as a JSON string. `; static examples = ['$ sf hardis:project:deploy:sources:metadata']; static flags = { level: Flags.string({ char: 'l', default: 'project', description: 'project,branch or user', options: ['project', 'branch', 'user'], }), debug: Flags.boolean({ char: 'd', default: false, description: messages.getMessage('debugMode'), }), websocket: Flags.string({ description: messages.getMessage('websocket'), }), skipauth: Flags.boolean({ description: 'Skip authentication check when a default username is required', }), }; // Set this to true if your command requires a project workspace; 'requiresProject' is false by default static requiresProject = false; configInfo = {}; /* jscpd:ignore-end */ async run() { const { flags } = await this.parse(ConfigGet); const level = flags.level || 'project'; this.configInfo = await getConfig(level); uxLog("other", this, JSON.stringify(this.configInfo)); return { config: this.configInfo, }; } } //# sourceMappingURL=get.js.map