github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/optional/encoders/bz2.go (about) 1 package encoders 2 3 import ( 4 "compress/bzip2" 5 "io" 6 7 "github.com/lmorg/murex/lang" 8 "github.com/lmorg/murex/lang/types" 9 ) 10 11 func init() { 12 lang.DefineMethod("!bz2", cmdUnbz2, types.Generic, types.Generic) 13 } 14 15 func cmdUnbz2(p *lang.Process) (err error) { 16 if err = p.ErrIfNotAMethod(); err != nil { 17 p.Stdout.SetDataType(types.Null) 18 return err 19 } 20 21 p.Stdout.SetDataType(types.Generic) 22 bz2 := bzip2.NewReader(p.Stdin) 23 _, err = io.Copy(p.Stdout, bz2) 24 if err != nil { 25 return err 26 } 27 28 return nil 29 }