Christian Fraß commited on 2021-03-05 07:46:19
Zeige 1 geänderte Dateien mit 64 Einfügungen und 18 Löschungen.
... | ... |
@@ -144,7 +144,7 @@ async function main(args : Array<string>) : Promise<void> |
144 | 144 |
process.exit(0); |
145 | 145 |
break; |
146 | 146 |
} |
147 |
- case "new": |
|
147 |
+ case "add": |
|
148 | 148 |
{ |
149 | 149 |
if (args.length < 1) |
150 | 150 |
{ |
... | ... |
@@ -152,24 +152,70 @@ async function main(args : Array<string>) : Promise<void> |
152 | 152 |
} |
153 | 153 |
else |
154 | 154 |
{ |
155 |
- const type : string = args.shift(); |
|
156 |
- const tags : Array<string> = ( |
|
157 |
- (args.length >= 1) |
|
158 |
- ? args.shift().split(",") |
|
159 |
- : [] |
|
160 |
- ); |
|
161 |
- const description : string = ( |
|
162 |
- (args.length >= 1) |
|
163 |
- ? args.shift() |
|
164 |
- : null |
|
165 |
- ); |
|
166 |
- const concept_thing : any = |
|
167 |
- { |
|
168 |
- "type": type, |
|
169 |
- "description": description, |
|
170 |
- "tags": tags, |
|
171 |
- "expressions": [], |
|
155 |
+ /* |
|
156 |
+ SYNOPSIS |
|
157 |
+ add <type> [-d <description>] [-t <tag>] [-t <tag>] … [-e <language>:<value>] [-e <language>:<value>] _ |
|
158 |
+ |
|
159 |
+ OPTIONS |
|
160 |
+ <type> |
|
161 |
+ -d <description> | --description=<description> |
|
162 |
+ -t <tag> | --tag=<tag> |
|
163 |
+ -e <language>:<value> | --expression=<language>:<value> |
|
164 |
+ */ |
|
165 |
+ const concept_thing : {type ?: string; description : null|string; tags : Array<string>; expressions : {[language : string] : Array<string>};} = { |
|
166 |
+ "type": undefined, |
|
167 |
+ "description": null, |
|
168 |
+ "tags": [], |
|
169 |
+ "expressions": {}, |
|
172 | 170 |
}; |
171 |
+ let positional : {list : Array<string>; index : int;} = { |
|
172 |
+ "list": ["type"], |
|
173 |
+ "index": 0, |
|
174 |
+ }; |
|
175 |
+ while (args.length > 0) |
|
176 |
+ { |
|
177 |
+ const arg : string = args.shift(); |
|
178 |
+ switch (arg) |
|
179 |
+ { |
|
180 |
+ case "-h": |
|
181 |
+ { |
|
182 |
+ console.info("add <type> [-d <description>] [-t <tag>] [-t <tag>] … [-e <language>:<value>] [-e <language>:<value>] _"); |
|
183 |
+ process.exit(0); |
|
184 |
+ break; |
|
185 |
+ } |
|
186 |
+ case "-d": |
|
187 |
+ { |
|
188 |
+ concept_thing["description"] = args.shift(); |
|
189 |
+ break; |
|
190 |
+ } |
|
191 |
+ case "-t": |
|
192 |
+ { |
|
193 |
+ concept_thing["tags"].push(args.shift()); |
|
194 |
+ break; |
|
195 |
+ } |
|
196 |
+ case "-e": |
|
197 |
+ { |
|
198 |
+ const [language, value] : Array<string> = args.shift().split(":", 2); |
|
199 |
+ if (! concept_thing["expressions"].hasOwnProperty(language)) { |
|
200 |
+ concept_thing["expressions"][language] = []; |
|
201 |
+ } |
|
202 |
+ concept_thing["expressions"][language].push(value); |
|
203 |
+ break; |
|
204 |
+ } |
|
205 |
+ default: |
|
206 |
+ { |
|
207 |
+ if (positional.index < positional.list.length) { |
|
208 |
+ concept_thing[positional.list[positional.index]] = arg; |
|
209 |
+ positional.index += 1; |
|
210 |
+ } |
|
211 |
+ else { |
|
212 |
+ throw (new Error("unexpected: " + arg)); |
|
213 |
+ } |
|
214 |
+ break; |
|
215 |
+ } |
|
216 |
+ } |
|
217 |
+ } |
|
218 |
+// console.info(helpers.json.encode_extended(concept_thing, true, 0)); |
|
173 | 219 |
const concept_id : int = await services.concept.suck(concept_thing); |
174 | 220 |
console.info(concept_id); |
175 | 221 |
process.exit(0); |
176 | 222 |