func removeBare(name string) error { err := fs.Filesystem().RemoveAll(path.Join(bareLocation(), formatName(name))) if err != nil { return fmt.Errorf("Could not remove git bare repository: %s", err) } return nil }
func removeBare(name string) error { err := fs.Filesystem().RemoveAll(barePath(name)) if err != nil { return fmt.Errorf("Could not remove git bare repository: %s", err) } return nil }
func (s *S) authKeysContent(c *gocheck.C) string { authKeysPath := path.Join(os.Getenv("HOME"), ".ssh", "authorized_keys") f, err := fs.Filesystem().OpenFile(authKeysPath, os.O_RDWR|os.O_EXCL, 0755) c.Assert(err, gocheck.IsNil) content, err := ioutil.ReadAll(f) return string(content) }
// Writes `key` in authorized_keys file (from current user) // It does not writes in the database, there is no need for that since the key // object is embedded on the user's document func addKey(k, username string) error { file, err := fs.Filesystem().OpenFile(authKey(), os.O_RDWR|os.O_EXCL, 0755) defer file.Close() if err != nil { return err } keys, err := ioutil.ReadAll(file) if err != nil { return err } content := formatKey(k, username) if strings.Contains(string(keys), content) { return fmt.Errorf("Key already exists.") } if len(keys) != 0 { content = fmt.Sprintf("%s\n%s", keys, content) } if _, err := file.Seek(0, 0); err != nil { return err } if _, err := file.WriteString(content); err != nil { return err } return nil }
func remove(k *Key) error { formatted := k.format() file, err := fs.Filesystem().OpenFile(authKey(), os.O_RDWR|os.O_EXCL, 0644) if err != nil { return err } defer file.Close() lines := make([]string, 0, 10) reader := bufio.NewReader(file) line, _ := reader.ReadString('\n') for line != "" { if line != formatted { lines = append(lines, line) } line, _ = reader.ReadString('\n') } file.Truncate(0) file.Seek(0, 0) content := strings.Join(lines, "") n, err := file.WriteString(content) if err != nil { return err } if n != len(content) { return io.ErrShortWrite } return nil }
func (s *S) authKeysContent(c *C) string { authFile := path.Join(os.Getenv("HOME"), ".ssh", "authorized_keys") f, err := fs.Filesystem().OpenFile(authFile, os.O_RDWR, 0755) c.Assert(err, IsNil) b, err := ioutil.ReadAll(f) c.Assert(err, IsNil) return string(b) }
// writeKeys serializes the given key in the authorized_keys file (of the // current user). func writeKey(k *Key) error { file, err := fs.Filesystem().OpenFile(authKey(), os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0644) if err != nil { return err } defer file.Close() syscall.Flock(int(file.Fd()), syscall.LOCK_EX) defer syscall.Flock(int(file.Fd()), syscall.LOCK_UN) return k.dump(file) }
// removes a key from auhtKey file func removeKey(key, username string) error { file, err := fs.Filesystem().OpenFile(authKey(), os.O_RDWR|os.O_EXCL, 0755) defer file.Close() if err != nil { return err } keys, err := ioutil.ReadAll(file) key = formatKey(key, username) content := strings.Replace(string(keys), key+"\n", "", -1) content = strings.Replace(content, key, "", -1) err = file.Truncate(0) _, err = file.Seek(0, 0) _, err = file.WriteString(content) if err != nil { return err } return nil }