1
0
mirror of https://github.com/ssh-vault/ssh-vault.git synced 2025-07-29 18:01:12 +03:00

save cache

This commit is contained in:
nbari
2016-10-01 13:43:42 +02:00
parent 4b820cc7dc
commit aa250979b8
2 changed files with 15 additions and 22 deletions

View File

@ -13,6 +13,7 @@ type cache struct {
dir string
}
// Cache creates ~/.ssh-vault
func Cache() *cache {
usr, _ := user.Current()
sv := filepath.Join(usr.HomeDir, ".ssh-vault", "keys")
@ -22,29 +23,20 @@ func Cache() *cache {
return &cache{sv}
}
// Get return ssh-key
func (c *cache) Get(u string) (string, error) {
uKey := fmt.Sprintf("%s/%s.key", c.dir, u)
if c.isFile(uKey) {
// read from file and return
}
keyPath := fmt.Sprintf("%s/%s.key", c.dir, u)
key, err := ioutil.ReadFile(keyPath)
if err != nil {
key, err := GetKey(u)
if err != nil {
return "", err
}
err = ioutil.WriteFile(uKey, []byte(key), 0644)
err = ioutil.WriteFile(keyPath, []byte(key), 0644)
if err != nil {
log.Println(err)
}
return key, nil
}
func (c *cache) isFile(path string) bool {
f, err := os.Stat(path)
if err != nil {
return false
}
if m := f.Mode(); !m.IsDir() && m.IsRegular() && m&400 != 0 {
return true
}
return false
return string(key), err
}

View File

@ -10,6 +10,7 @@ import (
const GITHUB = "https://github.com"
// GetKey fetches ssh-key from url
func GetKey(u string) (string, error) {
client := &http.Client{}
// create a new request