Example #1
0
/**
 *  遍历文件
 * @param  {[type]} path string)       (fp string [description]
 * @return {[type]}      [description]
 */
func visitFile(path string) (fp string) {
	fileInfo, err := os.Stat(path)
	if err != nil { //判断文件目录是否合法
		printErr(err.Error())
		return
	}
	filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
		fileDir, _ := filepath.Rel(rootPath, path)

		if info.IsDir() {
			return nil
		}
		// colors.Print(colors.Stdout, colors.Red, colors.Blue, "colors")
		uri := strings.Replace(fileDir, "\\", "/", -1)

		fgColor := colors.Green
		msg := "[success]"
		if md5File(fileDir) != md5RemoteFile(remotePath+uri) {
			fgColor = colors.Red
			msg = "[failed]"
			checkEndMsg = "\ncheckFailed, Please waiting for a moment\n"
		}
		colors.Printf(colors.Stdout, colors.White, colors.Black, "%-60s", remotePath+uri)
		colors.Printf(colors.Stdout, fgColor, colors.Black, "\t%s\n", msg)
		return nil
	})

	return path + "\\" + fileInfo.Name()
}
Example #2
0
func main() {
	remoteUrl := flag.String("t", "", "远程对比文件的地址,如[http://simple.bxds.com/ss/v1/],\n\r\t 默认为resource下[version.manifest]中的[packageUrl]")
	resource := flag.String("s", "./resource", "本地路径,默认为[./resource]")
	flag.Parse()

	_, err := os.Stat(*resource)
	if err != nil { //判断文件目录是否合法
		// fmt.Print(*resource + "文件目录不存在!请检查输入")
		printErr(err.Error())
		return
	}

	rootPath = *resource
	remotePath = *remoteUrl
	if *remoteUrl == "" {
		_, err := os.Stat("./resource/version.manifest")

		if err != nil {
			// printErr(err.Error())
			printErr(err.Error())
		}
		fi, err := os.Open("./resource/version.manifest")
		defer fi.Close()
		data, err := ioutil.ReadAll(fi)

		jsonData, err := simplejson.NewJson(data)
		if err != nil {
			printErr(err.Error())
		}
		ds, err := jsonData.Get("packageUrl").String()
		if err != nil {
			printErr(err.Error())
		}
		remotePath = ds
	}
	fmt.Println("start")
	fmt.Print("Remote Url:")
	colors.Printf(colors.Stdout, colors.Cyan, colors.Black, "%s\n", remotePath)

	visitFile(*resource)
	fmt.Println(checkEndMsg)
	fmt.Print("Press 'Enter' to continue...")
	bufio.NewReader(os.Stdin).ReadBytes('\n')

	// stdIn := os.Stdin
	// for {
	// 	c, _ := f.Read(stdIn)
	// 	ioutil.R
	// }

	// var command string
	// for {

	// 	fmt.Scan(&command)
	// 	print(command)
	// 	if command == nil {
	// 		break
	// 	}

	// }
}