NEWS
Test ioBroker Fixer mit JSONL-Compression
-
@mcm57
Unserer Posts haben sich überschnitten. -
@mcm57 Ja das ist ja mal ne geile Erkenntnis ... Naja klar kann man es umbenennen ... dann sieht nur der befehl nicht so schön aus
ich überlege mal ... aber dennoch ... WTF npm ....
Vielen Dank @mcm57 und @Gaspode so fix wie in den letzten zwei Tagen sind wir vorher nicht vorangekommen!!
-
PS: In nehme an ein "npx @iobroker/fix@latest" tut das gleiche korrekt wenn die iobroker.bat da ist?
Es ist nur interessant das es bei Linux nicht passiert
-
Aber damit: könnt Ihr mal loggen mit welchen Parametern er die iobroker.bat aufruft? vllt kann man das abfangen und irgendwie umgehen
-
@apollon77 said in Test ioBroker Fixer mit JSONL-Compression:
PS: In nehme an ein "npx @iobroker/fix@latest" tut das gleiche korrekt wenn die iobroker.bat da ist?
Nein, wenn die iobroker.bat da ist, klappt das auch mit @latest nicht.
-
@apollon77
Liegt denn bei linux ein iobroker.bat (bzw. iobroker) script im iobroker Verzeichnis?Und "npx @iobroker/fix@latest" funktioniert (bei mir) auch NICHT wenn iobroker.bat da ist.
EDIT:
Ja ein iobroker liegt im Verzeichnis. Nur ist bei Linux - soweit ich wieß - das cwd typisch NICHT im Pfad enthalten. Und damit störts nicht -
@apollon77 said in Test ioBroker Fixer mit JSONL-Compression:
Aber damit: könnt Ihr mal loggen mit welchen Parametern er die iobroker.bat aufruft? vllt kann man das abfangen und irgendwie umgehen
iobroker.bat wird ohne Parameter aufgerufen, daher kommt es ja zu der "(" Meldung.
Das Problem liegt wie @mcm57 schon geschrieben hat schon vor dem Aufruf von iobroker.bat -
@mcm57 Unter Linux liegt eine iobroker.sh ... aber denke path hat hier keine relevanz
-
@apollon77
wie schon beim GitHub Issue geschrieben: Evtl. können wir unter windows auf die iobroker.bat einfach ganz verzichten.
Muss man halt iob.bat verwenden, die es ja ohnehin schon gibt. -
Auch interessant das der verlinkte artikel davon redet das er ein "fix.bat" finden müsste aber scheinbar ists jetzt "iobroker.bat"
-
@gaspode ja würde ich nicht tun ... wäre eher bei @iobroker-smart-home/fix
oder sowas ... mal mit Bluefox beraten
-
@apollon77
Ich mach für heute mal schluss.Wenn mir wer sagen kann wie ich mit einer "privaten" npx testen kann, experimentier ich gern weiter.
In jedem Fall gibts einen Fehler in iob.bat und iobroker.bat wenn keine Parameter angegeben werden. Das wär zu fixen. Gibts dazu schon ein Issue? Sonst erstell ich eins und mach ev. gleich einen PR dazu (sind ja nur [] rund um %1, %2 bei den IFs). Bin nur nicht sicher in welchen Github die Dateien eigentlich liegen.
-
Auch interessant das der verlinkte artikel davon redet das er ein "fix.bat" finden müsste aber scheinbar ists jetzt "iobroker.bat"
Lt. npm exec docu (https://docs.npmjs.com/cli/v7/commands/npx) gilt:
If no -c or --call option is provided, then the positional arguments are used to generate the command string. If no --package options are provided, then npm will attempt to determine the executable name from the package specifier provided as the first positional argument according to the following heuristic:
If the package has a single entry in its bin field in package.json, or if all entries are aliases of the same command, then that command will be used.
If the package has multiple bin entries, and one of them matches the unscoped portion of the name field, then that command will be used.
If this does not result in exactly one option (either because there are no bin entries, or none of them match the name of the package), then npm exec exits with an error.Da es genau einen bin Eintrag gibt und der iobroker heißt nimmt npx den Befehl "iobroker". Nur nimmt es dann offenbar nicht den Eintrag in package.json als erste Wahl sondern geht mal mit "iobroker" den PATH abklappern. Und da findet es iobroker.bat.
Eigentlich eine perverse Logic - scheint aber so zu sein. Und npm/npx werden wir schwer ändern können. Ev. sollte man das Command e289hjvzufgcru657otß nennen - da ist eine Kollisio unwahrscheinlicher
-
@mcm57 said in Test ioBroker Fixer mit JSONL-Compression:
In jedem Fall gibts einen Fehler in iob.bat und iobroker.bat wenn keine Parameter angegeben werden. Das wär zu fixen. Gibts dazu schon ein Issue?
-
@mcm57 said in Test ioBroker Fixer mit JSONL-Compression:
Wie erhältst du den Screenoutput? Bei mir löst irgendwas ein Clear Screen aus sodass ich am Ende nur die Zeieln 36 bis 40 deines Outputs sehe...
Sorry, eben erst die Frage gesehen. einfach in Datei umleiten:
npx @iobroker/fix > meinLog.txt
-
@gaspode
Danke.Weißt du wer das die ClearScreens absetzt? Wär ev. sinnvoll wenn man die verhindern kann.
Oder wenn iob fix gleich ein Logfile schreibt. Ein DAU wird möglicherweise nicht an die Umleitung denken. Ich wollt sie eigentlich auch vermeidenZusatz:
Gibts unter Windows ein Äquivalent zu tee unter Linux? Wär ja schön wenn man den output auch live sehen kann - insbesondere wenn's mal wo klemmt. -
@mcm57 warum sollte ein User das im Normalfall brauchen?
macht’s nicht so kompliziert
Ansonsten habe wir entschieden mit js-Controller 5 später dieses Jahr die iobroker.bat zu entfernen. Bis dahin ist’s halt noch nicht gescheit funktional. Ist akzeptabel.
-
@apollon77
Was brauchen?
Einen Output des Fixerlaufs? Ich denk schon den würde ein User sehen wollen.
Spätestens wenn er den Outpu des Fixerlaufs posten sollUnd iobroker.bat zu streichen find ich nicht so toll. Aber das ist meine Meinung. Das wird sicher verwirren da dann der Befehl iobroker nicht mehr geht - oder versteh ich da was falsch? Und im Ergebnis wird dann der User ein iobroker.bat anlegen und dann werden erst wieder Fragen auftreten ...
Aber mir wird eh nachgesagt dass ich Probleme kreiere. ergo versuch ich mal still zu sein
Ev. können ja andere Windows User sagen ob / wieoft sie den Befehl iobroker auf der Commandline verwenden. -
@mcm57 wir haben ja noch iob.bat. Die bleibt ;-)) aber ja die interessante Frage ist was die windows User dazu sagen…
-
@apollon77 said in Test ioBroker Fixer mit JSONL-Compression:
aber ja die interessante Frage ist was die windows User dazu sagen…
Ich befürchte, die meisten davon haben diesen Thread noch nicht entdeckt.
Eine Alternative wäre es u.U. auch, unter Windows soweit möglich auf npx zu verzichten.
Der Fixer lässt sich ja so starten:npm install @iobroker/fix node node_modules\@iobroker\fix\lib-npx\install.js fix
Evtl. könnte man ja bei der Installation die benötigten Packages installieren und die entsprechenden node Aufrufe in BAT Files kapseln. in iobroker.bat gibt es ja bereits ein if für den Fixer. Da müsste man den npx Aufruf dann entsprechend ersetzen. Was bräuchte man denn noch? @iobroker/install ist ja noch kein Problem, da vor dem Installieren noch kein iobroker.bat vorhanden ist (trotzdem könnte man das ja in iobroker.bat aufnehmen).
Zum Logging auf der Shell:
@apollon77 said in Test ioBroker Fixer mit JSONL-Compression:macht’s nicht so kompliziert
Ich fände es auch übersichtlicher, wenn der Screen nicht während einem Scriptlauf gelöscht würde. Ist ja nur ein CLS in iobrokerservice.bat. Ich würde sagen, das hat keinen Mehrwert und man könnte es einfach rauswerfen. Ich habe einen entsprechenden PR angelegt, falls ihr das ähnlich seht.