// Copyright 2016 CoreOS, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package agent import ( "os" "runtime" ) func openToAppend(fpath string) (*os.File, error) { f, err := os.OpenFile(fpath, os.O_RDWR|os.O_APPEND|os.O_CREATE, 0777) if err != nil { return nil, err } return f, nil } func openToOverwrite(fpath string) (*os.File, error) { f, err := os.OpenFile(fpath, os.O_RDWR|os.O_TRUNC|os.O_CREATE, 0777) if err != nil { return nil, err } return f, nil } func toFile(txt, fpath string) error { f, err := openToOverwrite(fpath) if err != nil { f, err = os.Create(fpath) if err != nil { return err } } defer f.Close() _, err = f.WriteString(txt) return err } func homeDir() string { if runtime.GOOS == "windows" { home := os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH") if home == "" { home = os.Getenv("USERPROFILE") } return home } return os.Getenv("HOME") } // exist returns true if the file or directory exists. func exist(fpath string) bool { st, err := os.Stat(fpath) if err != nil { if os.IsNotExist(err) { return false } } if st.IsDir() { return true } if _, err := os.Stat(fpath); err != nil { if os.IsNotExist(err) { return false } } return true }