summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/ipp/utils.go
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/ipp/utils.go')
-rw-r--r--raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/ipp/utils.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/ipp/utils.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/ipp/utils.go
new file mode 100644
index 0000000..62689a3
--- /dev/null
+++ b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/ipp/utils.go
@@ -0,0 +1,28 @@
+package ipp
+
+import (
+ "fmt"
+ "os"
+ "path"
+)
+
+// ParseControlFile reads and decodes a cups control file into a response
+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()
+
+ return NewResponseDecoder(controlFile).Decode(nil)
+}