Skip to content

Commit

Permalink
Add useCustomCliPath and customCliPath inputs
Browse files Browse the repository at this point in the history
  • Loading branch information
HaveAGitGat committed May 21, 2024
1 parent b52baf8 commit 58dc01b
Showing 1 changed file with 84 additions and 25 deletions.
109 changes: 84 additions & 25 deletions FlowPluginsTs/CommunityFlowPlugins/tools/runCli/1.0.0/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,16 @@ const details = (): IpluginDetails => ({
sidebarPosition: -1,
icon: '',
inputs: [
{
label: 'Use Custom CLI Path?',
name: 'useCustomCliPath',
type: 'boolean',
defaultValue: 'false',
inputUI: {
type: 'switch',
},
tooltip: 'Specify whether to use a custom CLI path',
},
{
label: 'CLI',
name: 'userCli',
Expand All @@ -31,9 +41,49 @@ const details = (): IpluginDetails => ({
'mkvmerge',
'mkvpropedit',
],
displayConditions: {
logic: 'AND',
sets: [
{
logic: 'AND',
inputs: [
{
name: 'useCustomCliPath',
value: 'false',
condition: '===',
},
],
},
],
},
},
tooltip: 'CLI to run',
},
{
label: 'Custom CLI Path',
name: 'customCliPath',
type: 'string',
defaultValue: '/usr/bin/mkvmerge',
inputUI: {
type: 'text',
displayConditions: {
logic: 'AND',
sets: [
{
logic: 'AND',
inputs: [
{
name: 'useCustomCliPath',
value: 'true',
condition: '===',
},
],
},
],
},
},
tooltip: 'Specify the path to the CLI to run',
},
{
label: 'Does Command Create Output File?',
name: 'doesCommandCreateOutputFile',
Expand Down Expand Up @@ -82,6 +132,24 @@ const details = (): IpluginDetails => ({
\${cacheDir}/\${fileName}.{{{args.inputFileObj.container}}}
`,
},
{
label: 'CLI Arguments',
name: 'cliArguments',
type: 'string',
// eslint-disable-next-line no-template-curly-in-string
defaultValue: '-o "${outputFilePath}" "{{{args.inputFileObj._id}}}"',
inputUI: {
type: 'text',
},
tooltip: `Specify arguments to pass to the CLI.
Normal variable templating with {{{}}} applies but \${outputFilePath} is a special
variable from the "Output File Path" input above.
\\nExample\\n
-o "\${outputFilePath}" "{{{args.inputFileObj._id}}}"
`,
},

{
label: 'Output File Becomes Working File?',
name: 'outputFileBecomesWorkingFile',
Expand All @@ -108,23 +176,6 @@ const details = (): IpluginDetails => ({
tooltip:
'Toggle this on to make the output file become the working file for the next plugin.',
},
{
label: 'CLI Arguments',
name: 'cliArguments',
type: 'string',
// eslint-disable-next-line no-template-curly-in-string
defaultValue: '-o "${outputFilePath}" "{{{args.inputFileObj._id}}}"',
inputUI: {
type: 'text',
},
tooltip: `Specify arguments to pass to the CLI.
Normal variable templating with {{{}}} applies but \${outputFilePath} is a special
variable from the "Output File Path" input above.
\\nExample\\n
-o "\${outputFilePath}" "{{{args.inputFileObj._id}}}"
`,
},
],
outputs: [
{
Expand All @@ -140,7 +191,11 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
args.inputs = lib.loadDefaultValues(args.inputs, details);

let userCli = String(args.inputs.userCli);
const userCli = String(args.inputs.userCli);
const useCustomCliPath = args.inputs.useCustomCliPath;

Check failure on line 195 in FlowPluginsTs/CommunityFlowPlugins/tools/runCli/1.0.0/index.ts

View workflow job for this annotation

GitHub Actions / test (18.x, ubuntu-20.04)

Use object destructuring
const customCliPath = String(args.inputs.customCliPath);
let cliPath = '';

const {
outputFileBecomesWorkingFile,
} = args.inputs;
Expand Down Expand Up @@ -175,16 +230,20 @@ const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
mkvmerge: 'mkvmerge',
};

if (!availableCli[userCli]) {
const msg = `CLI ${userCli} not available to run in this plugin`;
args.jobLog(msg);
throw new Error(msg);
}
if (useCustomCliPath) {
cliPath = customCliPath;
} else {
if (!availableCli[userCli]) {
const msg = `CLI ${userCli} not available to run in this plugin`;
args.jobLog(msg);
throw new Error(msg);
}

userCli = availableCli[userCli];
cliPath = availableCli[userCli];
}

const cli = new CLI({
cli: userCli,
cli: cliPath,
spawnArgs: cliArgs,
spawnOpts: {},
jobLog: args.jobLog,
Expand Down

0 comments on commit 58dc01b

Please sign in to comment.