os

package
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2026 License: MIT Imports: 10 Imported by: 1

Documentation

Index

Constants

View Source
const ModuleName = "os"

Variables

View Source
var FileModeByName = map[string]FileFlag{
	"ro":            ORo,
	"wo":            OWo,
	"rw":            ORW,
	"append":        OAppend,
	"create":        OCreate,
	"if_not_exists": OIfNotExists,
	"sync":          OSync,
	"trunc":         OTrunc,
}
View Source
var (
	ModuleInit gad.ModuleInitFunc = func(module *gad.Module, c gad.Call) (err error) {
		spec := module.Spec
		module.Data = gad.Dict{
			"FileFlag":     TFileFlag,
			"pwd":          gad.MustNewReflectValue(os.Getwd),
			"uid":          gad.MustNewReflectValue(os.Getuid),
			"gid":          gad.MustNewReflectValue(os.Getgid),
			"homeDir":      gad.MustNewReflectValue(os.UserHomeDir),
			"user":         gad.MustNewReflectValue(user.Current),
			"getUser":      gad.MustNewReflectValue(user.Lookup),
			"getUserByID":  gad.MustNewReflectValue(user.LookupId),
			"getGroup":     gad.MustNewReflectValue(user.LookupGroup),
			"getGroupByID": gad.MustNewReflectValue(user.LookupGroupId),
			"Cmd":          gad.NewReflectType(reflect.TypeOf(cmdu.CmdBuilder{})),
			"env":          gad.MustNewReflectValue(cmdu.OsEnv),
			"mkdir":        gad.MustNewReflectValue(os.Mkdir),
			"mkdirAll":     gad.MustNewReflectValue(os.MkdirAll),
			"rm":           gad.MustNewReflectValue(os.Remove),
			"rmAll":        gad.MustNewReflectValue(os.RemoveAll),
			"stat":         gad.MustNewReflectValue(os.Stat),
			"exec": &gad.Function{
				Module:   spec,
				FuncName: "exec",
				Value:    Exec,
			},
			"exists": &gad.Function{
				Module:   spec,
				FuncName: "exists",
				Value:    Exists,
			},
			"createFile": &gad.Function{
				Module:   spec,
				FuncName: "createFile",
				Value:    CreateFile,
			},
			"openFile": &gad.Function{
				Module:   spec,
				FuncName: "openFile",
				Value:    OpenFile,
			},
			"readFile": &gad.Function{
				Module:   spec,
				FuncName: "readFile",
				Value:    ReadFile,
			},
		}

		return
	}
)
View Source
var TFileFlag = gad.NewType("FileFlag").
	WithConstructor(&gad.Function{
		Value: NewFileMode,
	}).
	WithStatic(gad.Dict{
		"RO":          ORo,
		"WO":          OWo,
		"RW":          ORW,
		"Append":      OAppend,
		"Create":      OCreate,
		"IfNotExists": OIfNotExists,
		"Sync":        OSync,
		"Trunc":       OTrunc,
	})

Functions

func CreateFile

func CreateFile(c gad.Call) (o gad.Object, err error)

func Exec

func Exec(c gad.Call) (o gad.Object, err error)

func Exists

func Exists(c gad.Call) (o gad.Object, err error)

func NewFileMode

func NewFileMode(c gad.Call) (_ gad.Object, err error)

func OpenFile

func OpenFile(c gad.Call) (o gad.Object, err error)

func ReadFile

func ReadFile(c gad.Call) (o gad.Object, err error)

Types

type FileFlag

type FileFlag uint64
const (
	// Exactly one of ORo, OWo, or ORW must be specified.
	ORo FileFlag = syscall.O_RDONLY // open the file read-only.
	OWo FileFlag = syscall.O_WRONLY // open the file write-only.
	ORW FileFlag = syscall.O_RDWR   // open the file read-write.
	// The remaining values may be or'ed in to control behavior.
	OAppend      FileFlag = syscall.O_APPEND // append data to the file when writing.
	OCreate      FileFlag = syscall.O_CREAT  // create a new file if none exists.
	OIfNotExists FileFlag = syscall.O_EXCL   // used with OCreate, file must not exist.
	OSync        FileFlag = syscall.O_SYNC   // open for synchronous I/O.
	OTrunc       FileFlag = syscall.O_TRUNC  // truncate regular writable file when opened.
)

func (FileFlag) BinOpAdd added in v0.0.2

func (f FileFlag) BinOpAdd(vm *gad.VM, right gad.Object) (gad.Object, error)

The per-operator methods delegate to binOp, which forwards to the integer bit operations and re-wraps the result as a FileFlag.

func (FileFlag) BinOpAnd added in v0.0.2

func (f FileFlag) BinOpAnd(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpAndNot added in v0.0.2

func (f FileFlag) BinOpAndNot(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpGreater added in v0.0.2

func (f FileFlag) BinOpGreater(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpGreaterEq added in v0.0.2

func (f FileFlag) BinOpGreaterEq(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpLess added in v0.0.2

func (f FileFlag) BinOpLess(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpLessEq added in v0.0.2

func (f FileFlag) BinOpLessEq(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpMul added in v0.0.2

func (f FileFlag) BinOpMul(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpOr added in v0.0.2

func (f FileFlag) BinOpOr(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpQuo added in v0.0.2

func (f FileFlag) BinOpQuo(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpRem added in v0.0.2

func (f FileFlag) BinOpRem(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpShl added in v0.0.2

func (f FileFlag) BinOpShl(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpShr added in v0.0.2

func (f FileFlag) BinOpShr(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpSub added in v0.0.2

func (f FileFlag) BinOpSub(vm *gad.VM, right gad.Object) (gad.Object, error)

func (FileFlag) BinOpXor added in v0.0.2

func (f FileFlag) BinOpXor(vm *gad.VM, right gad.Object) (gad.Object, error)

func (*FileFlag) Clear

func (f *FileFlag) Clear(flag FileFlag) *FileFlag

func (FileFlag) Equal

func (f FileFlag) Equal(right gad.Object) bool

func (FileFlag) Has

func (f FileFlag) Has(flag FileFlag) bool

func (FileFlag) IsFalsy

func (f FileFlag) IsFalsy() bool

func (*FileFlag) Parse

func (f *FileFlag) Parse(str string)

func (*FileFlag) Set

func (f *FileFlag) Set(flag FileFlag) *FileFlag

func (FileFlag) String

func (f FileFlag) String() string

func (FileFlag) ToString

func (f FileFlag) ToString() string

func (*FileFlag) Toggle

func (f *FileFlag) Toggle(flag FileFlag) *FileFlag

func (FileFlag) Type

func (f FileFlag) Type() gad.ObjectType

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL