示例#1
0
文件: main.go 项目: sinfomicien/rkt
func main() {
	allItems := getItems()

	failed := false
	for _, i := range allItems {
		for _, el := range i.list {
			if err := os.Remove(el); err != nil {
				if os.IsNotExist(err) {
					continue
				}
				common.Warn("Failed to remove %s %q: %v", i.kind, el, err)
				failed = true
				if infos, err := ioutil.ReadDir(el); err == nil {
					var contents []string
					for _, fi := range infos {
						contents = append(contents, fi.Name())
					}
					common.Warn("  Contents of the directory: %s", strings.Join(contents, ", "))
				}
			}
		}
	}
	if failed {
		os.Exit(1)
	}
}
示例#2
0
文件: globcmd.go 项目: harpe1999/rkt
// globGetArgs parses given parameters and returns a target, a suffix
// and a list of files.
func globGetArgs(args []string) globArgs {
	f, target := standardFlags(globCmd)
	suffix := f.String("suffix", "", "File suffix (example: .go)")
	globbingMode := f.String("glob-mode", "all", "Which files to glob (normal, dot-files, all [default])")
	filesMode := f.String("mode", "args", "How to get files, either 'filelist' mode or 'args' [default]")
	filelist := f.String("filelist", "", "For filelist mode, read all the files from this file")
	mapTo := []string{}
	mapToWrapper := common.StringSliceWrapper{Slice: &mapTo}
	f.Var(&mapToWrapper, "map-to", "Map contents of filelist to this directory, can be used multiple times")

	f.Parse(args)
	if *target == "" {
		common.Die("--target parameter must be specified and cannot be empty")
	}
	mode := globModeFromString(*globbingMode)
	switch *filesMode {
	case "filelist":
		if *filelist == "" {
			common.Die("--filelist parameter must be specified and cannot be empty")
		}
		if len(mapTo) < 1 {
			common.Die("--map-to parameter must be specified at least once")
		}
	case "args":
		if *filelist != "" {
			common.Warn("--filelist parameter is ignored in args mode")
		}
		if len(mapTo) > 0 {
			common.Warn("--map-to parameter is ignored in args mode")
		}
	}
	return globArgs{
		target:   *target,
		suffix:   *suffix,
		files:    f.Args(),
		mode:     mode,
		fMode:    *filesMode,
		filelist: *filelist,
		mapTo:    mapTo,
	}
}
示例#3
0
文件: main.go 项目: matomesc/rkt
func main() {
	depTypes := getAllDepTypes()
	depTypesString := fmt.Sprintf("'%s'", strings.Join(depTypes, "', '"))
	if len(os.Args) < 2 {
		common.Die("Expected a deps type (possible values: %s)", depTypesString)
	}
	depType := os.Args[1]
	cmdArgs := os.Args[2:]
	if f, ok := cmds[depType]; ok {
		fmt.Print(f(cmdArgs))
	} else if depType == "--help" || depType == "-help" {
		common.Warn("Run %s with one of the following commands: %s\nE.g. %s %s --help", appName(), depTypesString, os.Args[0], depTypes[0])
	} else {
		common.Die("Unknown deps type: %q, expected one of %s", depType, depTypesString)
	}
}
示例#4
0
文件: main.go 项目: NeilW/rkt
func main() {
	allItems := getItems()

	failed := false
	for _, i := range allItems {
		for _, el := range i.list {
			if err := os.Remove(el); err != nil {
				if os.IsNotExist(err) {
					continue
				}
				common.Warn("Failed to remove %s %q: %v", i.kind, el, err)
				failed = true
			}
		}
	}
	if failed {
		os.Exit(1)
	}
}