Exemple #1
0
func main() {

	run_strip := flag.Bool("s", false, "run strip")
	run_upx := flag.Bool("u", true, "run upx")

	flag.Parse()

	if flag.NArg() != 1 {
		usage()
		return
	}

	defer func() {
		if err := recover(); err != nil {
			log.Print("Panicked. Giving up.")
			panic(err)
			return
		}
	}()

	input_file := flag.Arg(0)
	err := hemfix.FixFile(input_file)
	if err != nil {
		log.Panicf("Failed to fix '%s': %v", input_file, err)
	}
	log.Print("File fixed!")

	if *run_strip {
		cmd := exec.Command("strip", "-s", input_file)
		cmd.Stdout = os.Stdout
		cmd.Stderr = os.Stderr
		err = cmd.Run()
		if err != nil {
			log.Panic("strip failed: ", err)
		}
	}

	if *run_upx {
		cmd := exec.Command("upx", input_file)
		cmd.Stdout = os.Stdout
		cmd.Stderr = os.Stderr
		err = cmd.Run()
		if err != nil {
			log.Panic("upx failed: ", err)
		}
	}

}
Exemple #2
0
// runHemfix will attempt to fix the current input file.
func runHemfix(input_file string) {
	if err := hemfix.FixFile(input_file); err != nil {
		log.Panicf("Failed to fix '%s': %v", input_file, err)
	}
	log.Print("File fixed!")
}