use shellcheck on generated bash completion script
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- bash, python
- Bereich
- cli, testing-qa
Rechercherichtung
Start with the poetry completions bash entry point and inspect how the generated Bash completion script is produced. Run ShellCheck against that generated output, then add verification so the reported parse errors are caught; done means the generated script passes the intended ShellCheck checks.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I suggest verifying the validity of a generated bash completion script using shellcheck. It would catch errors like mentioned in https://github.com/python-poetry/cleo/pull/260:
$ shellcheck <(poetry completions bash)
In /dev/fd/63 line 26:
case "$com" in
^-- SC1009 (info): The mentioned syntax error was in this case expression.
In /dev/fd/63 line 40:
(cache clear)
^-- SC1073 (error): Couldn't parse this case item. Fix to allow more checks.
^-- SC1072 (error): Expected ) to open a new case item. Fix any mentioned problems and try again.
^-- SC1085 (error): Did you forget to move the ;; after extending this case item?
For more information:
https://www.shellcheck.net/wiki/SC1085 -- Did you forget to move the ;; aft...
https://www.shellcheck.net/wiki/SC1072 -- Expected ) to open a new case ite...
https://www.shellcheck.net/wiki/SC1073 -- Couldn't parse this case item. Fi...
once these are solved, shellcheck suggests some other non-critical changes:
$ shellcheck <(poetry completions bash)
In /dev/fd/63 line 1:
_poetry_6df9602aac65d588_complete()
^-- SC2148 (error): Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive.
In /dev/fd/63 line 8:
if [[ $(type -t ${words[0]}) == "alias" ]]; then
^---------^ SC2154 (warning): words is referenced but not assigned (did you mean 'word'?).
^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
Did you mean:
if [[ $(type -t "${words[0]}") == "alias" ]]; then
In /dev/fd/63 line 9:
script=$(alias ${words[0]} | sed -E "s/alias ${words[0]}='(.*)'/\1/")
^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.
Did you mean:
script=$(alias "${words[0]}" | sed -E "s/alias ${words[0]}='(.*)'/\1/")
In /dev/fd/63 line 11:
script=${words[0]}
^----^ SC2034 (warning): script appears unused. Verify use (or export if used externally).
In /dev/fd/63 line 15:
for word in ${words[@]:1}; do
^-----------^ SC2068 (error): Double quote array expansions to avoid re-splitting elements.
In /dev/fd/63 line 182:
COMPREPLY=($(compgen -W "${opts}" -- ${cur}))
^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
Did you mean:
COMPREPLY=($(compgen -W "${opts}" -- "${cur}"))
In /dev/fd/63 line 189:
if [[ $cur == $com ]]; then
^--^ SC2053 (warning): Quote the right-hand side of == in [[ ]] to prevent glob matching.
In /dev/fd/63 line 192:
COMPREPLY=($(compgen -W "${coms}" -- ${cur}))
^-- SC2207 (warning): Prefer mapfile or read -a to split command output (or quote to avoid splitting).
^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
Did you mean:
COMPREPLY=($(compgen -W "${coms}" -- "${cur}"))
For more information:
https://www.shellcheck.net/wiki/SC2068 -- Double quote array expansions to ...
https://www.shellcheck.net/wiki/SC2148 -- Tips depend on target shell and y...
https://www.shellcheck.net/wiki/SC2034 -- script appears unused. Verify use...
- Vorherrschende Sprache
- Python
- Sterne
- 1.4k
- Forks
- 108
- Ø Merge
- 15 Min.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus python-poetry/cleo
-
question
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
python-poetry/cleo#471 · 2 Kommentare ·
-
feature
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
python-poetry/cleo#467 · 1 Reaktion ·
-
Poetry run doesn't work with --directory=Evtl. vergeben @DSeaStar hat das vor 85 Tagen übernommen. Offenbug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
python-poetry/cleo#434 · 1 Kommentar ·
-
feature
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
python-poetry/cleo#433 · 4 Kommentare ·
-
Formatter's `is_decorated` property is temporarily disabled during `remove_format` breaking concurrent threadsEvtl. vergeben @ShipItAndPray hat das vor 195 Tagen übernommen. Offenbug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 40/100
python-poetry/cleo#423 · 9 Kommentare ·
Alle Issues in python-poetry/cleo
Ähnliche Issues
-
ChatBedrockConverse changes the keys of JSON tool results to camelCase (`order_id` becomes `orderId`)Evtl. vergeben @geyazheng hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
langchain-ai/langchain-aws#1469 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
EESSI/docs#949 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
b4b usability
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
fix(schedule): align list_tasks since cursor filter boundary from strict > to >=Evtl. vergeben @bfs2021 hat das heute übernommen. Offenagent-ready bug p2 schedule
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
allenporter/supernote#540 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
frazane/scoringrules#164 ·
Maintainer antworten meist innerhalb von 1 Tag