mvdan / sh

A shell parser, formatter, and interpreter with bash support; includes shfmt
https://pkg.go.dev/mvdan.cc/sh/v3
BSD 3-Clause "New" or "Revised" License
6.97k stars 332 forks source link

Inline formatting single file: Breaks symlink and creates a regular file instead of retaining symlink #1053

Closed mechanicker closed 5 months ago

mechanicker commented 5 months ago

Before run:

$ ls -l shfmt.test*|sed -E 's#(dkrishnamurthy)|(staff)#dev#g'
-rw-r--r-- 1 dev dev 50 Jan 28 06:43 shfmt.test
lrwxr-xr-x 1 dev dev 10 Jan 28 06:14 shfmt.test.ln -> shfmt.test

Note: shfmt.test.ln is a symlink

After running shfmt -w shfmt.test.ln:

$ ls -l shfmt.test*|sed -E 's#(dkrishnamurthy)|(staff)#dev#g'
-rw-r--r-- 1 dev dev 50 Jan 28 06:43 shfmt.test
-rwxr-xr-x 1 dev dev 47 Jan 28 06:43 shfmt.test.ln*

Note: shfmt.test.ln is a formatted regular file

mvdan commented 5 months ago

Duplicate of https://github.com/mvdan/sh/issues/843.