forked from joejulian/gio
2c7aba9e7c
The convert program is only used by the shaders from package gpu, and we're about to make the backend package imported by the program internal to package gpu. Move the converter below package gpu. Signed-off-by: Elias Naur <mail@eliasnaur.com>
36 lines
731 B
Go
36 lines
731 B
Go
// SPDX-License-Identifier: Unlicense OR MIT
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
type WorkDir string
|
|
|
|
func (wd WorkDir) Dir(path string) WorkDir {
|
|
dirname := filepath.Join(string(wd), path)
|
|
if err := os.Mkdir(dirname, 0755); err != nil {
|
|
if !os.IsExist(err) {
|
|
fmt.Fprintf(os.Stderr, "failed to create %q: %v\n", dirname, err)
|
|
}
|
|
}
|
|
return WorkDir(dirname)
|
|
}
|
|
|
|
func (wd WorkDir) Path(path ...string) (fullpath string) {
|
|
return filepath.Join(string(wd), strings.Join(path, "."))
|
|
}
|
|
|
|
func (wd WorkDir) WriteFile(path string, data []byte) error {
|
|
err := ioutil.WriteFile(path, data, 0644)
|
|
if err != nil {
|
|
return fmt.Errorf("unable to create %v: %w", path, err)
|
|
}
|
|
return nil
|
|
}
|