Comments (3)
@bader-nasser Does using either the exactlyOne
or relationships
properties solve your use case?
If those don't get you what you need I'd recommend sticking with your current solution or submitting a PR for the feature yourself since I'm not sure we'd be able to prioritize this feature at the moment.
from core.
@mdonnalley No. I use relationships
& exclusive
and it handles some of my use cases.
firstPage: Flags.string({
char: 'f',
description: 'First page (defaults to lastPage)',
// This flag cannot be specified alongside these other flags
exclusive: ['pageRanges', 'data'],
}),
lastPage: Flags.string({
char: 'l',
description: 'Last page (defaults to firstPage)',
// This flag cannot be specified alongside these other flags
exclusive: ['pageRanges', 'data'],
}),
pageRanges: Flags.string({
char: 'p',
description: `Comma/Space-seperated list of page ranges (eg. "1-3, 5east, 4, 7-10even, 22-11odd")
See: https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-cat
See also: https://github.com/bader-nasser/pdftools/blob/main/test/docs/data.txt`,
// This flag cannot be specified alongside these other flags
exclusive: ['firstPage', 'lastPage', 'data'],
}),
data: Flags.string({
char: 'd',
description: `Data file (lines of page ranges)
See: https://github.com/bader-nasser/pdftools/blob/main/test/docs/data.txt`,
// This flag cannot be specified alongside these other flags
exclusive: ['firstPage', 'lastPage', 'pageRanges'],
}),
qualifier: Flags.string({
char: 'q',
options: ['even', 'odd'],
description:
'See: https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-cat',
relationships: [
// Make this flag dependent on at least one of these flags
{type: 'some', flags: ['firstPage', 'lastPage']},
// Make this flag exclusive of all these flags
{type: 'none', flags: ['pageRanges', 'data']},
],
}),
rotation: Flags.string({
char: 'r',
options: ['north', 'south', 'east', 'west', 'left', 'right', 'down'],
description:
'See: https://www.pdflabs.com/docs/pdftk-man-page/#dest-op-cat',
relationships: [
// Make this flag dependent on at least one of these flags
{type: 'some', flags: ['firstPage', 'lastPage']},
// Make this flag exclusive of all these flags
{type: 'none', flags: ['pageRanges', 'data']},
],
}),
The current flags' configuration is great but I don't see a way to make some these flags required. I'll stick with my solution and I'm not sure about sending a PR for the time being.
from core.
This issue has been linked to a new work item: W-15187594
from core.
Related Issues (20)
- topicSeparator space generates wrong message when used alongside usage HOT 1
- Upgrading to a version after 3.20.0 causes issues with hooks HOT 3
- (help): show arg/flag options if user didn't provide any HOT 1
- Command summary displays as topic summary when nested below topic without summary. HOT 1
- Unable to run dev.js outside of the project folder
- BaseCommand Documentation HOT 3
- Native support for .env files HOT 5
- bun with oclif not catching unhandled exceptions HOT 4
- Option to customize "<value>" in docopts help usage strings HOT 4
- Help strips strings from USAGE flags when they match command alias HOT 2
- feat: allow renaming of --json HOT 2
- ux.Table: Incorrect parsing of double quotes when exporting to CSV HOT 3
- ux.table `maxWidth` column option HOT 4
- CliUx.ux.prompt text truncation HOT 3
- Build failure with `exactOptionalPropertyTypes` enabled HOT 5
- [Feature request] Alias a single flag to a set of multiple flags HOT 1
- Getting MaxListenersExceededWarning: Possible EventEmitter memory leak detected. after updating to latest version of oclif HOT 2
- Error bundling @oclif/core into my project HOT 15
- UX tables get displayed along with json output on usage of --json flag HOT 2
- Specify different oclif options for dev and run HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from core.