2019-03-15 15:20:02 +00:00
|
|
|
package ipp
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"os"
|
|
|
|
"path"
|
|
|
|
)
|
|
|
|
|
2020-03-27 23:30:48 +00:00
|
|
|
// ParseControlFile reads and decodes a cups control file into a response
|
2019-03-15 15:20:02 +00:00
|
|
|
func ParseControlFile(jobID int, spoolDirectory string) (*Response, error) {
|
|
|
|
if spoolDirectory == "" {
|
|
|
|
spoolDirectory = "/var/spool/cups"
|
|
|
|
}
|
|
|
|
|
|
|
|
controlFilePath := path.Join(spoolDirectory, fmt.Sprintf("c%d", jobID))
|
|
|
|
|
|
|
|
if _, err := os.Stat(controlFilePath); err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
controlFile, err := os.Open(controlFilePath)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
defer controlFile.Close()
|
|
|
|
|
2019-12-26 15:46:08 +00:00
|
|
|
return NewResponseDecoder(controlFile).Decode(nil)
|
2019-03-15 15:20:02 +00:00
|
|
|
}
|