diff --git a/src/act.ts b/src/act.ts index f3923c7..d9e3379 100644 --- a/src/act.ts +++ b/src/act.ts @@ -46,12 +46,15 @@ export enum Event { } export enum Option { - Input = '--input', + Workflows = '-W', Job = '-j', Platform = '-P', Secret = '--secret', + SecretFile = '--secret-file', Variable = '--var', - Workflows = '-W' + VariableFile = '--var-file', + Input = '--input', + InputFile = '--input-file' } export interface CommandArgs { @@ -306,8 +309,11 @@ export class Act { `set -o pipefail; ` + `${Act.base} ${commandArgs.options}` + (settings.secrets.length > 0 ? ` ${Option.Secret} ${settings.secrets.map(secret => secret.key).join(` ${Option.Secret} `)}` : ``) + + (settings.secretFiles.length > 0 ? ` ${Option.SecretFile} ${settings.secretFiles.map(secretFile => `"${secretFile.path}"`).join(` ${Option.SecretFile} `)}` : ``) + (settings.variables.length > 0 ? ` ${Option.Variable} ${settings.variables.map(variable => (variable.value ? `${variable.key}=${variable.value}` : variable.key)).join(` ${Option.Variable} `)}` : ``) + + (settings.variableFiles.length > 0 ? ` ${Option.VariableFile} ${settings.variableFiles.map(variableFile => `"${variableFile.path}"`).join(` ${Option.VariableFile} `)}` : ``) + (settings.inputs.length > 0 ? ` ${Option.Input} ${settings.inputs.map(input => `${input.key}=${input.value}`).join(` ${Option.Input} `)}` : ``) + + (settings.inputFiles.length > 0 ? ` ${Option.InputFile} ${settings.inputFiles.map(inputFile => `"${inputFile.path}"`).join(` ${Option.InputFile} `)}` : ``) + (settings.runners.length > 0 ? ` ${Option.Platform} ${settings.runners.map(runner => `${runner.key}=${runner.value}`).join(` ${Option.Platform} `)}` : ``) + ` 2>&1 | tee "${logPath}"`; diff --git a/src/settingsManager.ts b/src/settingsManager.ts index cfcb334..7cdd7a8 100644 --- a/src/settingsManager.ts +++ b/src/settingsManager.ts @@ -51,11 +51,11 @@ export class SettingsManager { async getSettings(workspaceFolder: WorkspaceFolder, isUserSelected: boolean): Promise { const secrets = (await this.getSetting(workspaceFolder, SettingsManager.secretsRegExp, StorageKey.Secrets, true, Visibility.hide)).filter(secret => !isUserSelected || secret.selected); - const secretFiles = await this.getSettingFiles(workspaceFolder, StorageKey.SecretFiles); + const secretFiles = (await this.getSettingFiles(workspaceFolder, StorageKey.SecretFiles)).filter(secretFile => !isUserSelected || secretFile.selected); const variables = (await this.getSetting(workspaceFolder, SettingsManager.variablesRegExp, StorageKey.Variables, false, Visibility.show)).filter(variable => !isUserSelected || variable.selected); - const variableFiles = await this.getSettingFiles(workspaceFolder, StorageKey.VariableFiles); + const variableFiles = (await this.getSettingFiles(workspaceFolder, StorageKey.VariableFiles)).filter(variableFile => !isUserSelected || variableFile.selected); const inputs = (await this.getSetting(workspaceFolder, SettingsManager.inputsRegExp, StorageKey.Inputs, false, Visibility.show)).filter(input => !isUserSelected || (input.selected && input.value)); - const inputFiles = await this.getSettingFiles(workspaceFolder, StorageKey.InputFiles); + const inputFiles = (await this.getSettingFiles(workspaceFolder, StorageKey.InputFiles)).filter(inputFile => !isUserSelected || inputFile.selected); const runners = (await this.getSetting(workspaceFolder, SettingsManager.runnersRegExp, StorageKey.Runners, false, Visibility.show)).filter(runner => !isUserSelected || (runner.selected && runner.value)); const environments = await this.getEnvironments(workspaceFolder); @@ -184,10 +184,15 @@ export class SettingsManager { async deleteSettingFile(workspaceFolder: WorkspaceFolder, settingFile: SettingFile, storageKey: StorageKey) { try { await workspace.fs.delete(Uri.file(settingFile.path)); - await this.removeSettingFile(workspaceFolder, settingFile, storageKey); } catch (error: any) { - window.showErrorMessage(`Failed to delete file. Error ${error}`) + try { + await workspace.fs.stat(Uri.file(settingFile.path)); + window.showErrorMessage(`Failed to delete file. Error ${error}`); + return; + } catch (error) { } } + + await this.removeSettingFile(workspaceFolder, settingFile, storageKey); } async editSetting(workspaceFolder: WorkspaceFolder, newSetting: Setting, storageKey: StorageKey) {