• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang ini.File类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/go-ini/ini.File的典型用法代码示例。如果您正苦于以下问题:Golang File类的具体用法?Golang File怎么用?Golang File使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了File类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: Serve

func Serve(log *logging.Logger, addr string, ssl *ini.File) {
	var cmd []byte
	var ln net.Listener

	if ssl != nil {
		certificate := ssl.Section("ssl").Key("certificate").String()
		key := ssl.Section("ssl").Key("key").String()

		ln = tlsServe(log, addr, certificate, key)
		log.Debug("Opened SSL socket")
	} else {
		ln = plainServe(log, addr)
		log.Debug("Opened plain socket")
	}
	defer ln.Close()

	for {
		conn, err := ln.Accept()
		buff := bufio.NewReader(conn)

		if err != nil {
			// handle error
			log.Error("Error: %v\n", err)
		}
		log.Debug("Connection from " + conn.RemoteAddr().String() + " accepted")

		cmd, err = buff.ReadBytes('\n')
		log.Debug("Remote data readed")
		Parse(log, cmd, conn)
		conn.Close()
	}
}
开发者ID:mementobackup,项目名称:client,代码行数:32,代码来源:serve.go


示例2: fileBackup

func fileBackup(log *logging.Logger, section *common.Section, cfg *ini.File, c chan bool, wg *sync.WaitGroup) {
	defer func() {
		<-c
		wg.Done()
	}()

	dataset.DelDataset(log, cfg, section.Name, section.Grace, section.Dataset)

	log.Info("About to backup section " + section.Name)

	// Execute pre_command
	if err := execCommand(log, cfg.Section(section.Name), "pre_command"); err != nil {
		log.Debug(err.Error())
		// TODO: manage error
	}

	// Backup!
	backup.Filebackup(log, section, cfg)

	// Execute post_command
	if err := execCommand(log, cfg.Section(section.Name), "post_command"); err != nil {
		log.Debug(err.Error())
		// TODO: manage error
	}
}
开发者ID:mementobackup,项目名称:server,代码行数:25,代码来源:backup.go


示例3: Init

func Init() {
	cfgFile := getAbs("./settings/settings.ini")

	cfg := new(ini.File)
	cfg.BlockMode = false
	cfg, err := ini.Load(cfgFile)
	if err != nil {
		panic(err)
	}

	cfg.MapTo(&settingStruct)
	settingStruct.Log.File = filepath.Join(
		getAbs(settingStruct.Log.Path),
		time.Now().Format(settingStruct.Log.Format),
	)

	//map to global
	{
		Static = settingStruct.Static
		Server = settingStruct.Server
		Filesync = settingStruct.Filesync
		Template = settingStruct.Template
		DefaultVars = settingStruct.DefaultVars
		Admin = settingStruct.Admin
		Log = settingStruct.Log
	}

	FsCfgMgr = new(cfgMgr)
	FsCfgMgr.Init()

	go watch()
}
开发者ID:Felamande,项目名称:filesync,代码行数:32,代码来源:settings.go


示例4: fsGetData

func fsGetData(log *logging.Logger, section *common.Section, cfg *ini.File) {
	var previous int
	var res common.JSONFile
	var db database.DB

	if section.Dataset-1 == 0 {
		previous = cfg.Section("dataset").Key(section.Grace).MustInt()
	} else {
		previous = section.Dataset - 1
	}

	db.Open(log, cfg)
	defer db.Close()

	for _, item := range []string{"directory", "file", "symlink"} {
		for res = range database.ListItems(log, &db, section, item) {
			switch item {
			case "directory":
				fsSaveData(log, cfg, section, res, false)
			case "symlink":
				fsSaveData(log, cfg, section, res, false)
			case "file":
				if database.ItemExist(log, &db, &res, section, previous) {
					fsSaveData(log, cfg, section, res, true)
				} else {
					fsSaveData(log, cfg, section, res, false)
				}
			}
		}
	}
}
开发者ID:mementobackup,项目名称:server,代码行数:31,代码来源:filebackup.go


示例5: fileRestore

func fileRestore(log *logging.Logger, cfg *ini.File, section *common.Section) {
	// Execute pre_command
	execCommand(log, cfg.Section(section.Name), "pre_command")

	// Restore!
	restore.FileRestore(log, section, cfg)

	// Execute post_command
	execCommand(log, cfg.Section(section.Name), "post_command")
}
开发者ID:mementobackup,项目名称:server,代码行数:10,代码来源:restore.go


示例6: Backup

func Backup(log *logging.Logger, cfg *ini.File, grace string, reload bool) {
	const POOL = 5
	var db database.DB
	var tx *sql.Tx
	var c = make(chan bool, POOL)
	var wg = new(sync.WaitGroup)

	var dataset, maxdatasets int
	var sections []*ini.Section

	sections = cfg.Sections()

	maxdatasets, _ = cfg.Section("dataset").Key(grace).Int()

	db.Open(log, cfg)
	defer db.Close()

	tx, _ = db.Conn.Begin()
	dataset = database.GetDataset(log, tx, grace)
	tx.Commit()

	if !reload {
		if nextds := dataset + 1; nextds > maxdatasets {
			dataset = 1
		} else {
			dataset = dataset + 1
		}
	}
	log.Info("Dataset processed: " + strconv.Itoa(dataset))

	wg.Add(len(sections) - len(SECT_RESERVED))
	for _, section := range sections {
		if !contains(SECT_RESERVED, section.Name()) {
			if section.Key("type").String() == "file" { // FIXME: useless?
				sect := common.Section{
					Name:       section.Name(),
					Grace:      grace,
					Dataset:    dataset,
					Compressed: section.Key("compress").MustBool(),
				}

				go fileBackup(log, &sect, cfg, c, wg)
				c <- true
			}
		}
	}
	wg.Wait() // Wait for all the children to die
	close(c)

	tx, _ = db.Conn.Begin()
	database.SetDataset(log, tx, dataset, grace)
	tx.Commit()
}
开发者ID:mementobackup,项目名称:server,代码行数:53,代码来源:backup.go


示例7: handleServices

func handleServices(confIni *ini.File, p *proxy.IsolationProxy) {
	confSection, err := confIni.GetSection("services")
	check(err)
	for _, service := range confSection.Keys() {
		if !isRunningLocally(service.Name(), service.String(), p.Registry) {
			go func(service *ini.Key) {
				check(p.Handle(service.Name(), service.String()))
			}(service)
		} else {
			// If the service should be running locally on the same port, don't proxy it
			services.L.Warnf("Not handling %s on %s: should be running locally", service.Name(), service.String())
		}
	}
}
开发者ID:antongulenko,项目名称:http-isolation-proxy,代码行数:14,代码来源:main.go


示例8: retrieveCfgData

func (db *DB) retrieveCfgData(cfg *ini.File) {
	db.User = cfg.Section("database").Key("user").String()
	db.Password = cfg.Section("database").Key("password").String()
	db.Host = cfg.Section("database").Key("host").String()
	db.Port = cfg.Section("database").Key("port").String()
	db.Database = cfg.Section("database").Key("dbname").String()
}
开发者ID:mementobackup,项目名称:server,代码行数:7,代码来源:database.go


示例9: generateConnInfoOfUser

func (d *serverConf) generateConnInfoOfUser(ii *ini.File, user string) error {
	u, err := d.AuthSys.UserInfo(user)
	if err != nil {
		return err
	}
	keyBytes, err := MarshalPublicKey(d.publicKey)
	if err != nil {
		return err
	}
	url := fmt.Sprintf("d5://%s:%[email protected]%s/%s=%s/%s", u.Name, u.Pass, d.Listen, d.ServerName, NameOfKey(d.publicKey), d.Cipher)
	sec, _ := ii.NewSection(CF_CREDENTIAL)
	sec.NewKey(CF_URL, url)
	sec.NewKey(CF_KEY, base64.StdEncoding.EncodeToString(keyBytes))
	sec.Comment = _COMMENTED_PAC_SECTION
	return nil
}
开发者ID:xyz12810,项目名称:deblocus,代码行数:16,代码来源:config.go


示例10: Restore

func Restore(log *logging.Logger, cfg *ini.File, grace string) {
	dataset := cfg.Section("general").Key("dataset").MustInt()

	for _, section := range cfg.Sections() {
		if !contains(SECT_RESERVED, section.Name()) {
			if section.Key("type").String() == "file" {
				sect := common.Section{
					Name:       section.Name(),
					Grace:      grace,
					Dataset:    dataset,
					Compressed: section.Key("compress").MustBool(),
				}
				fileRestore(log, cfg, &sect)
			}
		}
	}
}
开发者ID:mementobackup,项目名称:server,代码行数:17,代码来源:restore.go


示例11: parseConfigINI

// Loads the primary configuration file and maps it into a Config type.
func parseConfigINI(cfgPathAbs string) (*Config, error) {
	var err error
	var cfg *Config = new(Config)
	var iniCfg *ini.File

	// loading the INI file contents into local struct
	if iniCfg, err = ini.Load(cfgPathAbs); err != nil {
		log.Fatalln("[Config] Errors on parsing INI file:", err)
		return nil, err
	}

	// mapping configuration into local struct
	if err = iniCfg.MapTo(cfg); err != nil {
		log.Fatalln("[Config] Errors on mapping INI:", err)
		return nil, err
	}

	return cfg, nil
}
开发者ID:otaviof,项目名称:godutch,代码行数:20,代码来源:config.go


示例12: FileRestore

func FileRestore(log *logging.Logger, section *common.Section, cfg *ini.File) {
	var cmd common.JSONMessage
	var res common.JSONFile
	var db database.DB
	var err error

	db.Open(log, cfg)
	defer db.Close()

	cmd.Context = "file"
	cmd.Command.Name = "put"

	if cfg.Section(section.Name).Key("path").String() == "" {
		log.Debug("About to full restore")
		cmd.Command.ACL = cfg.Section(section.Name).Key("acl").MustBool()
		for _, item := range []string{"directory", "file", "symlink"} {
			for res = range database.ListItems(log, &db, section, item) {
				if cmd.Command.ACL {
					log.Debug("About to restore ACLs for " + res.Name)
					res.Acl, err = database.GetAcls(log, &db, res.Name, section)
					if err != nil {
						log.Error("ACLs extraction error for " + res.Name)
						log.Debug("error: " + err.Error())
					}
				}

				cmd.Command.Element = res
				put(log, section, cfg, &cmd)
			}
		}
	} else {
		log.Debug("About to restore path " + cfg.Section(section.Name).Key("path").String())

		cmd.Command.Element, err = database.GetItem(log, &db, cfg.Section(section.Name).Key("path").String(), section)
		if err != nil {
			log.Error("Error when putting data to section " + section.Name)
			log.Debug("error: " + err.Error())
		} else {
			cmd.Command.ACL = cfg.Section(section.Name).Key("acl").MustBool()
			put(log, section, cfg, &cmd)
		}
	}
}
开发者ID:mementobackup,项目名称:server,代码行数:43,代码来源:filerestore.go


示例13: loadServiceRegistry

func loadServiceRegistry(confIni *ini.File) proxy.LocalRegistry {
	reg := make(proxy.LocalRegistry)
	addService := func(name string, endpoints ...string) {
		for _, addr := range endpoints {
			endpoint := &proxy.Endpoint{
				Service: name,
				Host:    addr,
			}
			endpoint.TestActive()
			reg.Add(name, endpoint)
		}
	}

	confSection, err := confIni.GetSection("backends")
	check(err)
	for _, service := range confSection.Keys() {
		addService(service.Name(), service.Strings(",")...)
	}
	return reg
}
开发者ID:antongulenko,项目名称:http-isolation-proxy,代码行数:20,代码来源:main.go


示例14: put

func put(log *logging.Logger, section *common.Section, cfg *ini.File, cmd *common.JSONMessage) {
	var conn net.Conn
	var err error

	conn, err = network.GetSocket(cfg.Section(section.Name))
	if err != nil {
		log.Error("Error when opening connection with section " + section.Name)
		log.Debug("error: " + err.Error())
		return
	}
	defer conn.Close()

	cmd.Send(conn)

	if cmd.Command.Element.Type == "file" {
		transfered := dataset.Path(cfg, section, false) + string(filepath.Separator) + cmd.Command.Element.Name
		if err := common.SendFile(transfered, conn); err != nil {
			log.Debug("Error when sending file: ", err.Error())
		}

	}
}
开发者ID:mementobackup,项目名称:server,代码行数:22,代码来源:filerestore.go


示例15: Path

func Path(cfg *ini.File, section *common.Section, previous bool) string {
	var dataset int

	if previous {
		if section.Dataset == 1 {
			dataset = cfg.Section("dataset").Key(section.Grace).MustInt()
		} else {
			dataset = section.Dataset - 1
		}
	} else {
		dataset = section.Dataset
	}

	destination := strings.Join([]string{
		cfg.Section("general").Key("repository").String(),
		section.Grace,
		strconv.Itoa(dataset),
		section.Name,
	}, string(filepath.Separator))

	return destination
}
开发者ID:mementobackup,项目名称:server,代码行数:22,代码来源:storage.go


示例16: main

func main() {
	var cfg *ini.File
	var backup bool
	var reload bool
	var err error

	s := options.NewOptions(SPEC)

	// Check if options isn't passed
	if len(os.Args[1:]) <= 0 {
		s.PrintUsageAndExit("No option specified")
	}

	opts := s.Parse(os.Args[1:])
	grace := ""

	// Print version and exit
	if opts.GetBool("version") {
		fmt.Println("Memento server " + VERSION)
		os.Exit(0)
	}

	// Print help and exit
	if opts.GetBool("help") {
		s.PrintUsageAndExit("Memento server " + VERSION)
	}

	// Check backup or restore operation (mandatory)
	if opts.GetBool("backup") && opts.GetBool("restore") {
		// If backup and restore options are passed in the same session, print help and exit
		s.PrintUsageAndExit("Cannot perform a backup and restore operations in the same session")
	}

	// Read grace (mandatory)
	if opts.GetBool("hour") {
		grace = "hour"
	} else if opts.GetBool("day") {
		grace = "day"
	} else if opts.GetBool("week") {
		grace = "week"
	} else if opts.GetBool("month") {
		grace = "month"
	} else {
		// If grace is not selected, print help and exit
		s.PrintUsageAndExit("No grace selected")
	}

	if opts.GetBool("reload-dataset") {
		reload = true
	} else {
		reload = false
	}

	if opts.GetBool("backup") {
		backup = true
		cfg, err = ini.Load([]byte{}, opts.Get("backup"))
	} else if opts.GetBool("restore") {
		backup = false
		cfg, err = ini.Load([]byte{}, opts.Get("restore"))
	}

	if err != nil {
		fmt.Println("Error about reading config file:", err)
		os.Exit(1)
	}

	repository := cfg.Section("general").Key("repository").String()
	checkStructure(repository)

	loglevel, _ := logging.LogLevel(cfg.Section("general").Key("log_level").String())
	log := setLog(loglevel, cfg.Section("general").Key("log_file").String())

	log.Info("Started version " + VERSION)
	log.Debug("Grace selected: " + grace)

	if backup {
		server.Backup(log, cfg, grace, reload)
	} else {
		server.Restore(log, cfg, grace)
	}

	log.Info("Ended version " + VERSION)
}
开发者ID:mementobackup,项目名称:server,代码行数:83,代码来源:mserver.go


示例17: fsSaveData

func fsSaveData(log *logging.Logger, cfg *ini.File, section *common.Section, data common.JSONFile, previous bool) {
	var item, source, dest, hash string
	var cmd common.JSONMessage
	var conn net.Conn
	var err error

	item = dataset.ConvertPath(data.Os, data.Name)
	source = dataset.Path(cfg, section, true) + string(filepath.Separator) + item
	dest = dataset.Path(cfg, section, false) + string(filepath.Separator) + item

	log.Debug("Save item: " + dest)

	switch data.Type {
	case "directory":
		os.MkdirAll(dest, 0755)
	case "symlink":
		if err := os.Symlink(data.Link, dest); err != nil {
			log.Error("Error when creating symlink for file %s", data.Name)
			log.Debug("Trace: %s", err.Error())
		}
	case "file":
		if previous {
			if section.Compressed {
				source = source + ".compressed"
				dest = dest + ".compressed"
			}

			if err = os.Link(source, dest); err != nil {
				log.Error("Error when link file %s", data.Name)
				log.Debug("Trace: " + err.Error())
			}
		} else {
			cmd.Context = "file"
			cmd.Command.Name = "get"
			cmd.Command.Element = data

			conn, err = network.GetSocket(cfg.Section(section.Name))
			if err != nil {
				log.Error("Error when opening connection with section " + section.Name)
				log.Debug("Trace: " + err.Error())
				return
			}
			defer conn.Close()

			cmd.Send(conn)

			if hash, err = common.ReceiveFile(dest, conn); err != nil {
				log.Error("Error when receiving file " + data.Name)
				log.Debug("Trace: " + err.Error())
			}

			// TODO: check file's hash
			if hash == "" {
				log.Error("Hash for file " + dest + " mismatch")
				// TODO: remove file if hash mismatch
			} else {
				log.Debug("Hash for file " + dest + " is " + hash)

				if section.Compressed {
					dataset.CompressFile(log, dest)
				}
			}
		}
	}
}
开发者ID:mementobackup,项目名称:server,代码行数:65,代码来源:filesave.go


示例18: fsGetMetadata

func fsGetMetadata(log *logging.Logger, section *common.Section, cfg *ini.File) {
	var conn net.Conn
	var cmd common.JSONMessage
	var db database.DB
	var buff *bufio.Reader
	var res common.JSONResult
	var tx *sql.Tx
	var data []byte
	var err error

	log.Debug("Getting metadata for " + section.Name)

	cmd.Context = "file"
	cmd.Command.Name = "list"
	cmd.Command.Paths = strings.Split(cfg.Section(section.Name).Key("path").String(), ",")
	cmd.Command.ACL = cfg.Section(section.Name).Key("acl").MustBool()
	cmd.Command.Exclude = cfg.Section(section.Name).Key("exclude").String()
	log.Debug("Metadata command request: %+v", cmd)

	conn, err = network.GetSocket(cfg.Section(section.Name))
	if err != nil {
		log.Error("Error when opening connection with section " + section.Name)
		log.Debug("error: " + err.Error())
		return
	}
	defer conn.Close()

	cmd.Send(conn)

	db.Open(log, cfg)
	defer db.Close()

	tx, err = db.Conn.Begin()
	if err != nil {
		log.Error("Transaction error for section " + section.Name)
		log.Debug("Trace: " + err.Error())

		return
	}

	buff = bufio.NewReader(conn)
	for {
		res = common.JSONResult{}

		data, err = buff.ReadBytes('\n')

		if err != nil {
			if err == io.EOF {
				log.Debug("All files's metadata are saved")
				break
			}

			log.Error("Error when getting files metadata for section " + section.Name)
			log.Debug("error: " + err.Error())
			return
		}

		err = json.Unmarshal(data, &res)
		if err != nil {
			log.Error("Error when parsing JSON data for section " + section.Name)
			log.Debug("error: " + err.Error())
			return
		}

		log.Debug("Metadata received: %+v", res)
		if err = database.SaveAttrs(log, tx, section, res.Data); err != nil {
			log.Error("Failed saving database item: " + res.Data.Name)
			log.Debug("Trace: " + err.Error())
			tx.Rollback()

			return
		}

		if err = database.SaveAcls(log, tx, section, res.Data.Name, res.Data.Acl); err != nil {
			log.Error("Failed saving ACLs into database for item: " + res.Data.Name)
			log.Debug("Trace: " + err.Error())
			tx.Rollback()

			return
		}
	}

	tx.Commit()
}
开发者ID:mementobackup,项目名称:server,代码行数:84,代码来源:filebackup.go


示例19: loadIniConfigs

// Receives a list of Container INI configuration files and load them into
// "Container" section of primary Config instance.
func (cfg *Config) loadIniConfigs(cfgPaths []string) error {
	var err error
	var iniCfg *ini.File
	var section *ini.Section
	var sectionName string
	var cfgPath string
	var serviceCfg *ServiceConfig
	var containerCfg *ContainerConfig
	var name string
	var match bool

	for _, cfgPath = range cfgPaths {
		log.Printf("[Config] Loading: '%s'", cfgPath)

		// avoiding dummy files
		if match, _ = path.Match("\\.\\#*\\.ini", path.Base(cfgPath)); match {
			log.Printf("[Config] Ignoring config file: '%s'", cfgPath)
			continue
		}

		if iniCfg, err = ini.Load(cfgPath); err != nil {
			log.Println("[Config] Config load error:", err)
			return err
		}

		// the section names will determine witch kind of configuratio this is
		for _, sectionName = range iniCfg.SectionStrings() {
			section = iniCfg.Section(sectionName)

			switch sectionName {
			case "Service":
				serviceCfg = new(ServiceConfig)

				if err = section.MapTo(serviceCfg); err != nil {
					log.Println("[Config] Error on mapTo ServiceConfig:", err)
					return err
				}

				if name, err = sanitizeName(serviceCfg.Name); err != nil {
					log.Println("[Config] Error on sanitize name:", err)
					return err
				}

				log.Printf("[Config] Adding service: '%s'", name)
				serviceCfg.Name = name
				cfg.Service[name] = serviceCfg

				log.Printf("[Config] DEBUG serviceCfg: '%+v'", serviceCfg)
			case "Container":
				containerCfg = new(ContainerConfig)

				if err = section.MapTo(containerCfg); err != nil {
					log.Println("[Config] Error on mapTo Container:", err)
					return err
				}

				if name, err = sanitizeName(containerCfg.Name); err != nil {
					log.Println("[Config] Error on sanitize name:", err)
					return err
				}

				log.Printf("[Config] Adding container: '%s'", name)
				containerCfg.Name = name
				cfg.Container[name] = containerCfg

				log.Printf("[Config] DEBUG containerCfg: '%+v'", containerCfg)
			case "DEFAULT":
				continue
			default:
				log.Printf("[Config] Ignored section: '%s'", sectionName)
			}
		}
	}

	return nil
}
开发者ID:otaviof,项目名称:godutch,代码行数:78,代码来源:config.go


示例20: getSingleHostname

func getSingleHostname(file string, section string) string {
	var ini_cfg *ini.File
	loginfo := "getSingleHostname"

	hostname := ""

	ini_cfg, err := ini.Load(file)
	if err != nil || ini_cfg == nil {
		fmt.Printf("[ERROR] %s() - %s.\n", loginfo, err)
		return hostname
	}

	items, err := ini_cfg.GetSection(section)
	if err != nil {
		fmt.Printf("[ERROR] %s() from %s %s.\n", loginfo, file, err)
		os.Exit(retFailed)
	}

	keystrs := items.KeyStrings()
	if len(keystrs) <= 0 {
		fmt.Printf("[ERROR] %s() get single hostname from %s failed.", loginfo, file)
		os.Exit(retFailed)
	}

	for _, v := range keystrs {
		v = strings.TrimSpace(v)

		if v != "" {
			tokens := strings.Split(v, " ")

			if len(tokens) == 0 {
				continue
			}

			host := tokens[0]

			if strings.HasPrefix(host, "(") && strings.HasSuffix(host, ")") {
				srp := strings.NewReplacer("(", "", ")", "")
				host = srp.Replace(host)
			} else if strings.HasPrefix(host, "[") && strings.HasSuffix(host, "]") {
				srp := strings.NewReplacer("[", "", "]", "")
				host = srp.Replace(host)
			}

			tokens = strings.Split(host, " ")
			if len(tokens) == 0 {
				continue
			}
			hostname = tokens[0]

			// Three cases to check:
			// 0. A hostname that contains a range pesudo-code and a port
			// 1. A hostname that contains just a port
			if strings.Count(hostname, ":") > 1 {
				// Possible an IPv6 address, or maybe a host line with multiple ranges
				// IPv6 with Port  XXX:XXX::XXX.port
				// FQDN            foo.example.com
				if strings.Count(hostname, ".") == 1 {
					hostname = hostname[0:strings.LastIndex(hostname, ".")]
				}
			} else if (strings.Count(hostname, "[") > 0 && strings.Count(hostname, "]") > 0 &&
				(strings.LastIndex(hostname, "]") < strings.LastIndex(hostname, ":"))) ||
				((strings.Count(hostname, "]") <= 0) && (strings.Count(hostname, ":") > 0)) {
				hostname = hostname[0:strings.LastIndex(hostname, ":")]
			}
		}

		if hostname != "" {
			break
		}
	}

	return hostname
}
开发者ID:soarpenguin,项目名称:go-scripts,代码行数:74,代码来源:ansibledeploy.go



注:本文中的github.com/go-ini/ini.File类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang server.AddService类代码示例发布时间:2022-05-23
下一篇:
Golang ini.Load函数代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap