Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] "Required option '-i' is missing" #690

Open
RichardBradley opened this issue Mar 3, 2023 · 17 comments · May be fixed by #815
Open

[BUG] "Required option '-i' is missing" #690

RichardBradley opened this issue Mar 3, 2023 · 17 comments · May be fixed by #815
Assignees
Labels
bug Something isn't working

Comments

@RichardBradley
Copy link

RichardBradley commented Mar 3, 2023

🐛 Bug Report:

Describe the bug

When I run npx openapi-generator-cli generate, I get the following error:

$ npx openapi-generator-cli genera
[error] Required option '-i' is missing

Steps to Reproduce

I'm on v 2.5.2 (latest at time of writing), Cygwin on Windows, Node 14. Here's all relevant info I can think of:

$ npx --version
6.14.17
$ npm --version
6.14.17
$ node --version
v14.20.0
$ npx openapi-generator-cli version
6.0.1
$ grep openapi-generator ../../package.json
    "@openapitools/openapi-generator-cli": "^2.5.2",
$ cat openapitools.json
{
  "$schema": "../../node_modules/@openapitools/openapi-generator-cli/config.schema.json",
  "spaces": 2,
  "generator-cli": {
    "version": "6.0.0",
    "generators": {
      "my-spec-gen": {
        "generatorName": "typescript-rxjs",
        "output": "./generated",
        "inputSpec": "./reference/my-spec.yaml"
      }
    }
  }
}
$ npx openapi-generator-cli generate
Download 6.0.1 ...
Downloaded 6.0.1
[error] Required option '-i' is missing

Expected behavior

openapi-generator-cli should invoke openapi-generator-cli with correct args in order to regenerate my models

Operation System (please complete the following information):

  • OS: Windows 10, Cygwin

Package System (please complete the following information):

npm 6.14.17, node v14.20.0

I get the same on Node 18

Additional context

This appears to be the same issue described in #43 that is marked fixed.

I was able to work around by invoking Java directly:

java -jar ../../node_modules/@openapitools/openapi-generator-cli/versions/6.0.1.jar generate -i ./reference/my-api.yaml -o generated -g typescript-rxjs

I can't see what's up with openapi-generator-cli or how to diagnose further. I wasn't able to get any diagnostic logs, and the main.js seems minified so I couldn't investigate further.

@RichardBradley RichardBradley added the bug Something isn't working label Mar 3, 2023
@DanielHabenicht
Copy link

DanielHabenicht commented Oct 14, 2023

I can confirm the bug, after a fresh install of @openapitools/openapi-generator-cli": "^2.7.0" in the package.json and invoking it through npm run in a linux github codespace.
Also the openapitools.json is overwritten for me.

Installing it globally and using only the command line options worked for me (as a workaround)

@a-stangl
Copy link

a-stangl commented Dec 4, 2023

I had the same issue while trying to run generate without arguments from within a subfolder of my project. I “fixed” it by putting my openapitools.json in the project root (the same level as my package.json) and adjusting my paths (inputSpec, output, config, etc.) relative to the project root.

After invoking the generator via a NPM script from my package.json, e.g.

"scripts": {
    "generate": "openapi-generator-cli generate"
},

via npm run generate all worked as expected.

@RobinMeow
Copy link

RobinMeow commented Dec 10, 2023

To get the issue back on track: The problem is not that "-i is missing", but that the openapitools.json is simply ignored when running openapi-generator-cli generate --generator-key v1.0. (or openapi-generator-cli generate)

Im pretty sure of this, because when i specify -i manually the cmd complains about generator name as so on.. even tho they are all defined in the json.

@RichardBradley
Copy link
Author

This seems to have been fixed in the latest version.
It's no longer happening for me at any rate

@wing328
Copy link
Member

wing328 commented Feb 8, 2024

thanks for the confirmation

just so you know we just released openapi-generator v7.3.0

@Haarolean
Copy link

Experiencing this as well. Only on Windows.
provectus/kafka-ui#1582

@Haarolean
Copy link

@wing328 it's not fixed in 7.3.0, just tried that out.

@tajnymag
Copy link

Can confirm it still happens on 7.4.0

@wing328
Copy link
Member

wing328 commented Mar 11, 2024

are you guys using Windows? are you using DOS prompt?

it works for me on Windows 11, JDK17 with DOS command prompt.

@tajnymag
Copy link

are you guys using Windows? are you using DOS prompt?

it works for me on Windows 11, JDK17 with DOS command prompt.

Running both Windows 11 and JDK17.

Can reproduce in conhost too, but I mainly use pwsh in Windows Terminal. That doesn't seem to be the issue.

I'm probably in a wrong issue though, my issue is mainly related to this issue: #43.

I'm using pnpm and I'm calling the generator from a package.json script.

@tajnymag
Copy link

Found the issue. At least in my case.

Openapi-generator-cli is using INIT_CWD as its working directory:

public readonly cwd = process.env.PWD || process.env.INIT_CWD || process.cwd()

When I ran my pnpm test script from a different directory (pnpm -r or pnpm run --dir) I got:

> node cwd-test.js

process.env.PWD undefined
process.env.INIT_CWD C:\Users\marek\GitHub\vsb-eink-services
process.cwd() C:\Users\marek\GitHub\vsb-eink-services\packages\facade-api-client

There's an issue in pnpm discussing where INIT_CWD is supposed to point.

@wing328
Copy link
Member

wing328 commented Mar 12, 2024

thanks for sharing the details.

as a workaround, please use npm instead.

@wilml
Copy link

wilml commented Mar 19, 2024

Hi @wing328 using npm (assuming below is what you meant) does not work. I tried the following,

npm install -g @openapitools/openapi-generator-cli

And then ran,

openapi-generator-cli generate

Still same error,

[error] Required option '-i' is missing

Edit: Using version 7.4.0 on Ubuntu 22.04

@wing328
Copy link
Member

wing328 commented Mar 20, 2024

the latest version of the npm wrapper allows you to specify the openapitools.json file. can you please give it a try?

#754

@wilml
Copy link

wilml commented Mar 20, 2024

Hi @wing328 thanks for the follow up. After much debugging I discovered that the same error is given if the openapitools.json file does not follow the openapi-generator-cli schema (I didn't have the generators within the generator object).

Its now working as expected on the latest release.

@lpinto-adn
Copy link

Hello @wing328,
My situation is similar to the one described on #690 (comment)
The difference is that in my windows environment the process.env.PWD is filled but it has the wrong project path, as showed below

- process.env.PWD: /c/Users/lpinto/xxxxx
- process.env.INIT_CWD: C:\Users\lpinto\xxxxx
- process.cwd(): C:\Users\lpinto\xxxxx

I'm using npm to run "openapi-generator-cli generate" command

npm --version
npm verb cli C:\Users\lpinto\.nvs\default\node.exe C:\Users\lpinto\.nvs\default\node_modules\npm\bin\npm-cli.js
npm info using [email protected]
npm info using [email protected]
npm verb title npm
npm verb argv "--version"
npm verb logfile logs-max:10 dir:C:\Users\lpinto\AppData\Local\npm-cache\_logs\2024-03-25T08_16_04_423Z-
npm verb logfile C:\Users\lpinto\AppData\Local\npm-cache\_logs\2024-03-25T08_16_04_423Z-debug-0.log
9.6.7
npm verb exit 0
npm info ok

I found this comment #758 (comment), and I believe it could solve my situation.

Has a workaround I have to define all the configurations like this "openapi-generator-cli generate -i xx -g xxx -o xxx -c openapitools.json", but this way I am repeating the settings that exist within the openapitools.json file.

@segevfiner
Copy link

I think openapi-generator-cli should really just use process.cwd()... With INIT_CWD it seems to often gen invoked in the current directory even when running scripts recursively from a different folder. And PWD is essentially process.cwd() on Linux/macOS, but doesn't exist in Windows, which causes the behavior to vary...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.