Skip to content
This repository has been archived by the owner on Oct 31, 2021. It is now read-only.

robozonky-distribution-cli 5.1.0x nelze zadat heslo #407

Closed
vvvlc opened this issue Mar 23, 2019 · 5 comments
Closed

robozonky-distribution-cli 5.1.0x nelze zadat heslo #407

vvvlc opened this issue Mar 23, 2019 · 5 comments

Comments

@vvvlc
Copy link
Contributor

vvvlc commented Mar 23, 2019

Vypada to ze CLI je nejaky divny, ikdyz zadam na prikazovou radku -p a -s tak se CLI dozaduje zadani hesla a navic akceptuje pouze jeden znak.

NOTE: ve verzi 4.8.3 to fungovalo v pohode.

java -jar robozonky-distribution-cli-5.1.0-cr-3-full.jar zonky-credentials -k a -p v -s c -u d

Enter value for --password (Password to use to authenticate with Zonky servers.): 
Enter value for --secret (Secret to use to access the keystore.): 
Unmatched arguments: v, c
Usage: java -jar robozonky-cli.jar zonky-credentials -k=<keystore>
                                                     -u=<username>
                                                     -p=<password>
                                                     [-p=<password>]...
                                                     -s=<secret>
                                                     [-s=<secret>]...
Set credentials to access Zonky servers.
  -k, --keystore=<keystore>
                          The keystore to hold the secrets.
  -p, --password=<password>
                          Password to use to authenticate with Zonky servers.
  -s, --secret=<secret>   Secret to use to access the keystore.
  -u, --username=<username>
                          Username to use to authenticate with Zonky servers.

V

@triceo
Copy link
Member

triceo commented Mar 23, 2019

Pracovní teorie:

  • Ve verzi 5 došlo k migraci z JCommander na Picocli.
  • Picocli datový typ hesla char[] špatně chápe jako char.

Ověřím a případně nahlásím chybu v Picocli. Nicméně jako workaround by asi mělo stačit nahradit char[] za String. Uvidíme.

@triceo
Copy link
Member

triceo commented Mar 23, 2019

Přidal jsem autorovi Picocli failující test, ukazující na problém: remkop/picocli#648

Uvidíme, co na to řekne. V nejhorším prostě heslo převedu na String a všechno by mělo fungovat.

@vvvlc
Copy link
Contributor Author

vvvlc commented Mar 23, 2019

Jeste takovy vedlejsi dotaz.
Chtel jsem rozsirit CLI o command group zonky-export-downloader na stahnuti Zonky exportu

  • na gdrive - jako test, ze clovek ma spravne nastavenou integraci
  • mit moznost ulozit export lokalne, pro dalsi zpracovani v pythonu, protoze me trapi uzavrenost Stonky.

Zapasil jsem s tim cele dopoledne, ale nakonec jsem to prozatim vzdal, protoze IDE (vscode), maven, Java a ten bug v picocli jsou proti me :-(. Presto bych mel par dotazu:

  1. Je toto cli to prave misto pro zonky-export-downloader nebo to patri spis do Robozonky app?
  2. Podle testu bych mel volat public CompletableFuture<Optional<File>> download(final Tenant tenant)
    public CompletableFuture<Optional<File>> download(final Tenant tenant) {
    ,ale nevim kde mam vzit toho tenanta, kdyz mam zonky api:
    api.run(Zonky::logout, () -> oauth.login(username, password));
  3. Jaky mas flow vyvoje:
    1. git clone [email protected]:RoboZonky/robozonky.git
    2. overit verzi Javy (11), a maven (3.5.x).
    3. mvn -am clean install -DskipTests -Dgpg.skip
    4. pridat do .gitignore **/.project **/.settings **/.classpath
    5. a dal mi to prijde spis magie,
      1. nevim jak to spustit cli v ide (mam problem sestavit cely classpath)
      2. nevim jak spustit pouze jeden test
      3. idea mi nadava, ze nevidi: Error:(64, 49) java: cannot find symbol symbol: class NaturalLanguageStrategyParser location: class com.github.robozonky.strategy.natural.SideEffectFreeParser
      4. vscode mi hlasi The hierarchy of the type AbstractZonkyLeveragingTest is inconsistent

@triceo
Copy link
Member

triceo commented Mar 23, 2019

  1. Nevidím problém dát to do cli.
  2. To je problém. Tenant je interface z robozonky-common, jehož jediná implementace je v robozonky-app. Takže jisté řešení by bylo napsat si vlastní implementaci - Tenant je poměrně velký interface, ale pro zavolání Export.download() ze stonky by mělo stačit implementovat call() resp. run(). To je s použitím ApiProvider triviální.
  3. Přesně jak píšeš. K otázkám...
    a. Ve vscode se nevyznám. Ale v IDEA prostě kliknu na Main a dám Run - ostatní si vyřeší IDEA sama.
    b. Z příkazové řádky to řeší Maven Surefire, viz. property test. Z IDEA je to zase na jedno kliknutí.
    c. Tenhle modul obsahuje parser, který se generuje přes ANTLR. Takže před první kompilací projektu v IDEA je dobré to zkompilovat z Mavenu. Maven vygeneruje příslušné zdrojáky, a následně v IDEA si přidáš target/generated-sources/ do zdrojáků. Pak to půjde zkompilovat i z IDEA.
    d. Tak tady netuším. Pokud přijdeš na to, čím to je, vyřeším to.

Je vidět, že robota vyvíjím sám. Už jsem vůči těmhle drobným složitostem slepý.

@triceo triceo added this to the 5.1.0 milestone Mar 23, 2019
@triceo
Copy link
Member

triceo commented Mar 24, 2019

  • Do 5.1.0 to opravím konverzí hesel na String. cli nikdy neběží dlouho, takže to není takový problém.
  • Do 5.2.0 upgraduji na Picocli 3.9.6 prozatím to na masteru nechám tak, jak to je, tj. rozbité.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants