tmuxinator / tmuxinator

Manage complex tmux sessions easily
MIT License
12.74k stars 630 forks source link

Failed to parse config file: undefined method `[]' for nil:NilClass #855

Closed emeth69 closed 2 years ago

emeth69 commented 2 years ago

I have recently migrated from tmuxinator 1.1.4 (the one available on Fedora 31) to the 3.0.2 (the one available on Fedora 35) and my old .yml projects didn't work anymore.

Digging a little bit in the issue I found there is a parsing problem about the parsing of the arguments passed from the command line. With tmuxinator debug I always get only the message:

Failed to parse config file: undefined method `[]' for nil:NilClass

when <%= @args[0] %> appears in the .yml project.

I've prepared a minimal example to show the problem (this is the one generated with tmuxinator new with the guilty piece of code).

`name: test-bug root: ~/

windows:

to showcase the problem use: tmuxinator debug test-bug something of course by using start instead of debug it turn out in nothing

Something is changed in the last revision? From the userguide on the github doesn't seem so. Am I doing something wrong?

Thank you for the help.

Environment

Additional information This is my gemlist:

abbrev (default: 0.1.0) atk (3.4.9) base64 (default: 0.1.0) benchmark (default: 0.1.1) bigdecimal (3.0.0) bundler (2.2.22) cairo (1.17.5) cairo-gobject (3.4.9) cgi (default: 0.2.0) csv (default: 3.1.9) date (default: 3.1.0) dbm (default: 1.1.0) debug (default: 0.1.0) delegate (default: 0.2.0) did_you_mean (default: 1.5.0) digest (default: 3.0.0) drb (default: 2.0.4) english (default: 0.7.1) erb (default: 2.2.0) erubi (1.10.0) etc (default: 1.2.0) fcntl (default: 1.0.0) fiddle (default: 1.0.6) fileutils (default: 1.5.0) find (default: 0.1.0) forwardable (default: 1.3.2) gdbm (default: 2.1.0) gdk_pixbuf2 (3.4.9) getoptlong (default: 0.1.1) gettext (3.4.2) gio2 (3.4.9) glib2 (3.4.9) gobject-introspection (3.4.9) goocanvas (1.2.6) gstreamer (3.4.9) gtk2 (3.4.3) hpricot (0.8.6) htmlentities (4.3.4) imagesize (0.1.1) io-console (0.5.7) io-nonblock (default: 0.1.0) io-wait (default: 0.1.0) ipaddr (default: 1.2.2) irb (1.3.5) json (2.6.1) locale (2.1.3) logger (default: 1.4.3) marc (1.1.1) matrix (default: 0.3.1) mutex_m (default: 0.1.1) net-ftp (default: 0.1.2) net-http (default: 0.1.1) net-imap (default: 0.1.1) net-pop (default: 0.1.1) net-protocol (default: 0.1.0) net-smtp (default: 0.2.1) nkf (default: 0.1.0) observer (default: 0.1.1) open-uri (default: 0.1.0) open3 (default: 0.1.1) openssl (default: 2.2.0) optparse (default: 0.1.0) ostruct (default: 0.3.1) pango (3.4.9) pathname (default: 0.1.0) pp (default: 0.1.0) prettyprint (default: 0.1.0) prime (default: 0.1.2) pstore (default: 0.1.1) psych (3.3.0) racc (1.6.0, default: 1.5.1) rdoc (6.3.1) readline (default: 0.0.2) readline-ext (default: 0.1.1) red-colors (0.3.0) reline (default: 0.2.5) resolv (default: 0.2.0) resolv-replace (default: 0.1.0) rexml (3.2.5) rinda (default: 0.1.0) scrub_rb (1.0.1) securerandom (default: 0.1.0) set (default: 1.0.1) shellwords (default: 0.1.0) singleton (default: 0.1.1) stringio (default: 3.0.0) strscan (default: 3.0.0) syck (1.4.1) syslog (default: 0.1.0) tempfile (default: 0.1.1) text (1.3.1) thor (1.2.1) time (default: 0.1.0) timeout (default: 0.1.1) tmpdir (default: 0.1.2) tmuxinator (3.0.2) tracer (default: 0.1.1) tsort (default: 0.1.0) un (default: 0.1.0) unf (0.1.4) unf_ext (0.0.8) uri (default: 0.10.1) weakref (default: 0.1.1) xdg (2.2.5) yaml (default: 0.1.1) zlib (default: 1.1.0) zoom (0.5.0)

ethagnawl commented 2 years ago

At a glance, it should be args instead of Args.

emeth69 commented 2 years ago

Thank you for the prompt reply. I don't know why github is capitalizing it but in my .yml file (that I cut and pasted) it is @args[0]. Any other idea? Are you having the same problem I have with the example?

Ps. I tried to fix it in the code and, surprise, surprise, it is already lowercase in my text but the @ is provoking the change as happened at the beginning of this message. It is the day of the weird behaviors...

ethagnawl commented 2 years ago

I'm not able to reproduce this issue when using your sample Yaml.

Have you tried any of the other ways of passing parameters into a template?

For instance, using an environment variable:

yaml

... panes:

CLI

CSV=abcxyz.csv tmuxinator start bug

emeth69 commented 2 years ago

At last I solved it. The problem relies in the rpm for Fedora 35. By removing it and reinstalling tmuxinator as a gem everything work again.

Thank you for the help.