You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Scripts often don't have a file extension. This means that the files = [] attribute won't be able to target them efficiently. The user would have to manually pass all of the filenames in there.
Proposed solution
If a file has the executable bit set, open the file and look at the shebang. This will make the detection more expensive but I don't really see a way around it.
In the formatter config, add a files_executable = [] section that lists all of the shebang executables the formatter should match on.
In cases where #!/usr/bin/env is being used, it should strip that and look at the next argument to find the executable name. Otherwise, it looks at the basename of the first argument.
The text was updated successfully, but these errors were encountered:
shfmt does this internally (I don’t know if that is visible via treefmt or if the interface always passes specific files or what).
An shfmt --find or something will return a list of the files it would have formatted, so it exposes the ability to find shebangs … but it doesn’t let you specify what you might want to find on the shebang, so you’re restricted to shell scripts.
Problem statement
Scripts often don't have a file extension. This means that the
files = []
attribute won't be able to target them efficiently. The user would have to manually pass all of the filenames in there.Proposed solution
If a file has the executable bit set, open the file and look at the shebang. This will make the detection more expensive but I don't really see a way around it.
In the formatter config, add a
files_executable = []
section that lists all of the shebang executables the formatter should match on.In cases where
#!/usr/bin/env
is being used, it should strip that and look at the next argument to find the executable name. Otherwise, it looks at the basename of the first argument.The text was updated successfully, but these errors were encountered: