34 lines
611 B
Go
34 lines
611 B
Go
package action
|
|
|
|
import (
|
|
. "ios-wrapper/internal/wrapper/ofile"
|
|
)
|
|
|
|
// Actions on MachoFile
|
|
type Action interface {
|
|
withMacho(mf *MachoFile) error
|
|
withFat(ff *FatFile) error
|
|
// TODO: error context
|
|
}
|
|
|
|
func RunAction(action Action, ofile OFile) error {
|
|
switch ofile.(type) {
|
|
case *MachoFile:
|
|
return action.withMacho(ofile.(*MachoFile))
|
|
case *FatFile:
|
|
return action.withFat(ofile.(*FatFile))
|
|
}
|
|
// not likely
|
|
return nil
|
|
}
|
|
|
|
func defaultWithFat(action Action, ff *FatFile) error {
|
|
for _, macho := range ff.Machos() {
|
|
err := action.withMacho(macho)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|