package execlog

import (
	shlex 
	
	
)

type Cmd struct {
	*execabs.Cmd
}

// Command is like execabs.Command but logs args on execution.
func ( string,  ...string) *Cmd {
	 := &Cmd{
		execabs.Command(, ...),
	}
	return 
}

func ( *Cmd) () ([]byte, error) {
	log.LOG.Printf("executing %#v", shlex.Join(.Args))
	return .Cmd.CombinedOutput()
}

func ( *Cmd) () ([]byte, error) {
	log.LOG.Printf("executing %#v", shlex.Join(.Args))
	return .Cmd.Output()
}

func ( *Cmd) () error {
	log.LOG.Printf("executing %#v", shlex.Join(.Args))
	return .Cmd.Run()
}

func ( *Cmd) () error {
	log.LOG.Printf("executing %#v", shlex.Join(.Args))
	return .Cmd.Start()
}

// Command is the same as execabs.Command.
func ( string) (string, error) {
	return execabs.LookPath()
}