Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New ENV command breaks SET command in tape file #503

Open
rahji opened this issue Jul 14, 2024 · 9 comments
Open

New ENV command breaks SET command in tape file #503

rahji opened this issue Jul 14, 2024 · 9 comments

Comments

@rahji
Copy link

rahji commented Jul 14, 2024

Describe the bug

If you add a line like Env PROMPT '>' in the tape file, it has to be after any Set commands or it will cause them to be ignored when tape is run. (They appear in STDOUT but grayed out, and its clear from the resulting gif that they were ignored).

Setup
Please complete the following information along with version numbers, if applicable.

  • OS: Windows 11 WSL2 (Ubuntu 22.04.4 LTS)
  • Shell: default
  • Terminal Emulator: Windows Terminal
  • Terminal Multiplexer: tmux

To Reproduce
Steps to reproduce the behavior:

  1. Create a tape file containing the following and run with tape:
Output foo.gif
Env PROMPT "-"
Set Height 100
Type "creates a gif, but ignores 'Set Height'"
  1. Create a second tape file containing the following and run with tape:
Output bar.gif
Set Height 100
Env PROMPT "-"
Type "The tape command will fail with this file since 100 is not a valid 'Height'"

Source Code
See above

Expected behavior
Both tape files should work properly. Instead, the first one will create foo.gif but will ignore the Set Height command. The second one will fail since the Set Height line is not being ignored (and contains an invalid value)

Screenshots
n/a

Additional context
This only occurs on the current build. The ENV command is not available in the latest release. @Delta456's #469 was merged after that.

@Delta456
Copy link
Contributor

In my PR I removed the functionality of ENV PROMPT prompt and it only allows to define env variables.

@rahji
Copy link
Author

rahji commented Jul 15, 2024

ENV PROMPT prompt works - but only if it comes after the SET lines

Actually, PROMPT doesn't work.

The bug is still accurate otherwise though, since the following tape file causes the Set commands to be ignored (because Env precedes them):

Output demo.gif

Env A "2"
Set Width 1150
Set Height 700
Set FontSize 18

Type "echo $A"
Enter

Sleep 2s

@Delta456
Copy link
Contributor

I will investigate this and attempt to fix this.

@Delta456
Copy link
Contributor

After hours of investigation, this happens for all commands before SET. Perhaps all commands need to be written after setting the configuration of a tape.

@maaslalani
Copy link
Contributor

After hours of investigation, this happens for all commands before SET. Perhaps all commands need to be written after setting the configuration of a tape.

Hey @Delta456, this is a documented behaviour of settings:
https://github.com/charmbracelet/vhs#settings

Setting must be administered at the top of the tape file. Any setting (except TypingSpeed) applied after a non-setting or non-output command will be ignored.

@Delta456
Copy link
Contributor

Ah, I missed that. This needs to be told when using the program IMO. Also, this issue can now be closed.

@maaslalani
Copy link
Contributor

Ah, I missed that. This needs to be told when using the program IMO. Also, this issue can now be closed.

Agreed, if a setting is ignored we should display a warning that this setting should appear at the top of the file!

@Delta456
Copy link
Contributor

Ah, I missed that. This needs to be told when using the program IMO. Also, this issue can now be closed.

Agreed, if a setting is ignored we should display a warning that this setting should appear at the top of the file!

I will add this warning in my future PRs.

@Delta456
Copy link
Contributor

Delta456 commented Oct 20, 2024

This issue can be closed as #508 is merged

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

No branches or pull requests

3 participants