LMMS
Loading...
Searching...
No Matches
juce_ConsoleApplication.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 The code included in this file is provided under the terms of the ISC license
11 http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12 To use, copy, modify, and/or distribute this software for any purpose with or
13 without fee is hereby granted provided that the above copyright notice and
14 this permission notice appear in all copies.
15
16 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18 DISCLAIMED.
19
20 ==============================================================================
21*/
22
23namespace juce
24{
25
26//==============================================================================
39{
42
44 ArgumentList (int argc, char* argv[]);
45
47 ArgumentList (const String& executable, const String& arguments);
48
49 ArgumentList (const ArgumentList&) = default;
50 ArgumentList& operator= (const ArgumentList&) = default;
51
52 //==============================================================================
58 struct Argument
59 {
62
66 File resolveAsFile() const;
67
75
83
85 bool isLongOption() const;
86
88 bool isShortOption() const;
89
91 bool isLongOption (const String& optionRoot) const;
92
97
99 bool isShortOption (char shortOptionCharacter) const;
100
102 bool isOption() const;
103
107 bool operator== (StringRef stringToCompare) const;
108
112 bool operator!= (StringRef stringToCompare) const;
113 };
114
115 //==============================================================================
117 int size() const;
118
120 Argument operator[] (int index) const;
121
123 void checkMinNumArguments (int expectedMinNumberOfArgs) const;
124
129 bool containsOption (StringRef option) const;
130
137
141 int indexOfOption (StringRef option) const;
142
145
156
163
168
174
179
186
191
198
201
204};
205
206
207//==============================================================================
237{
238 //==============================================================================
269
270 //==============================================================================
272 void addCommand (Command);
273
278
280 void addVersionCommand (String versionArgument, String versionText);
281
286 void addHelpCommand (String helpArgument, String helpMessage, bool makeDefaultCommand);
287
291 void printCommandList (const ArgumentList&) const;
292
296 void printCommandDetails (const ArgumentList&, const Command&) const;
297
298 //==============================================================================
305 static void fail (String errorMessage, int returnCode = 1);
306
311 static int invokeCatchingFailures (std::function<int()>&& functionToCall);
312
313 //==============================================================================
328 bool optionMustBeFirstArg = false) const;
329
333 int findAndRunCommand (int argc, char* argv[]) const;
334
342 const Command* findCommand (const ArgumentList&, bool optionMustBeFirstArg) const;
343
345 const std::vector<Command>& getCommands() const;
346
347private:
348 //==============================================================================
349 std::vector<Command> commands;
351};
352
353} // namespace juce
Definition juce_Array.h:56
Definition juce_File.h:45
Definition juce_StringArray.h:35
Definition juce_String.h:53
Definition juce_StringRef.h:62
char * argv[]
Definition unzip.c:738
Definition carla_juce.cpp:31
Definition juce_ConsoleApplication.h:59
File resolveAsExistingFile() const
Definition juce_ConsoleApplication.cpp:63
String text
Definition juce_ConsoleApplication.h:61
bool isLongOption() const
Definition juce_ConsoleApplication.cpp:82
File resolveAsExistingFolder() const
Definition juce_ConsoleApplication.cpp:68
bool isShortOption() const
Definition juce_ConsoleApplication.cpp:83
File resolveAsFile() const
Definition juce_ConsoleApplication.cpp:58
String getLongOptionValue() const
Definition juce_ConsoleApplication.cpp:97
bool isOption() const
Definition juce_ConsoleApplication.cpp:84
Definition juce_ConsoleApplication.h:39
ArgumentList(const ArgumentList &)=default
File getExistingFileForOptionAndRemove(StringRef option)
Definition juce_ConsoleApplication.cpp:274
String removeValueForOption(StringRef option)
Definition juce_ConsoleApplication.cpp:224
File getExistingFileForOption(StringRef option) const
Definition juce_ConsoleApplication.cpp:269
bool removeOptionIfFound(StringRef option)
Definition juce_ConsoleApplication.cpp:182
File getExistingFolderForOption(StringRef option) const
Definition juce_ConsoleApplication.cpp:279
int indexOfOption(StringRef option) const
Definition juce_ConsoleApplication.cpp:166
String executableName
Definition juce_ConsoleApplication.h:200
File getFileForOption(StringRef option) const
Definition juce_ConsoleApplication.cpp:259
void failIfOptionIsMissing(StringRef option) const
Definition juce_ConsoleApplication.cpp:192
Array< Argument > arguments
Definition juce_ConsoleApplication.h:203
bool containsOption(StringRef option) const
Definition juce_ConsoleApplication.cpp:177
void checkMinNumArguments(int expectedMinNumberOfArgs) const
Definition juce_ConsoleApplication.cpp:160
String getValueForOption(StringRef option) const
Definition juce_ConsoleApplication.cpp:198
ArgumentList(String executable, StringArray arguments)
Definition juce_ConsoleApplication.cpp:137
File getFileForOptionAndRemove(StringRef option)
Definition juce_ConsoleApplication.cpp:264
File getExistingFolderForOptionAndRemove(StringRef option)
Definition juce_ConsoleApplication.cpp:284
Definition juce_ConsoleApplication.h:247
String argumentDescription
Definition juce_ConsoleApplication.h:256
String commandOption
Definition juce_ConsoleApplication.h:251
std::function< void(const ArgumentList &)> command
Definition juce_ConsoleApplication.h:267
String shortDescription
Definition juce_ConsoleApplication.h:261
String longDescription
Definition juce_ConsoleApplication.h:264
Definition juce_ConsoleApplication.h:237
void printCommandDetails(const ArgumentList &, const Command &) const
Definition juce_ConsoleApplication.cpp:428
int findAndRunCommand(const ArgumentList &, bool optionMustBeFirstArg=false) const
Definition juce_ConsoleApplication.cpp:334
void addDefaultCommand(Command)
Definition juce_ConsoleApplication.cpp:357
void printCommandList(const ArgumentList &) const
Definition juce_ConsoleApplication.cpp:413
const Command * findCommand(const ArgumentList &, bool optionMustBeFirstArg) const
Definition juce_ConsoleApplication.cpp:318
int commandIfNoOthersRecognised
Definition juce_ConsoleApplication.h:350
void addCommand(Command)
Definition juce_ConsoleApplication.cpp:352
static int invokeCatchingFailures(std::function< int()> &&functionToCall)
Definition juce_ConsoleApplication.cpp:301
void addHelpCommand(String helpArgument, String helpMessage, bool makeDefaultCommand)
Definition juce_ConsoleApplication.cpp:363
void addVersionCommand(String versionArgument, String versionText)
Definition juce_ConsoleApplication.cpp:378
std::vector< Command > commands
Definition juce_ConsoleApplication.h:349
static void fail(String errorMessage, int returnCode=1)
Definition juce_ConsoleApplication.cpp:296
const std::vector< Command > & getCommands() const
Definition juce_ConsoleApplication.cpp:387
Definition mygetopt.h:88
ulg size
Definition extract.c:2350
#define void
Definition unzip.h:396
int argc
Definition zipinfo.c:455