From da6591e4807d6aec5f230e8a1efad1e2ef686608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Mur=C3=A9?= Date: Tue, 10 Dec 2019 20:13:49 +0100 Subject: [PATCH] cmd: "user create" only assign the user identity if not set --- cache/repo_cache.go | 4 ++++ commands/user_create.go | 9 ++++++++- identity/identity.go | 10 ++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/cache/repo_cache.go b/cache/repo_cache.go index ec4cf43623ae6d33b0f171ca4362a6cfae49164c..90a489c857c5d23febc4df5b5919660019a13c48 100644 --- a/cache/repo_cache.go +++ b/cache/repo_cache.go @@ -877,6 +877,10 @@ func (c *RepoCache) GetUserIdentity() (*IdentityCache, error) { return cached, nil } +func (c *RepoCache) IsUserIdentitySet() (bool, error) { + return identity.IsUserIdentitySet(c.repo) +} + // NewIdentity create a new identity // The new identity is written in the repository (commit) func (c *RepoCache) NewIdentity(name string, email string) (*IdentityCache, error) { diff --git a/commands/user_create.go b/commands/user_create.go index 88cc94de595ba2a05f4eebb6b4a1cc9dea9ecf4e..15b9767e87b9e7d88dba6d424c045ef733c8f525 100644 --- a/commands/user_create.go +++ b/commands/user_create.go @@ -53,11 +53,18 @@ func runUserCreate(cmd *cobra.Command, args []string) error { return err } - err = backend.SetUserIdentity(id) + set, err := backend.IsUserIdentitySet() if err != nil { return err } + if !set { + err = backend.SetUserIdentity(id) + if err != nil { + return err + } + } + _, _ = fmt.Fprintln(os.Stderr) fmt.Println(id.Id()) diff --git a/identity/identity.go b/identity/identity.go index ed8e39e041799c156a75d7985bed95d3777012e7..cd47c1b74e05a29be7b1242e15a20e3d673689d2 100644 --- a/identity/identity.go +++ b/identity/identity.go @@ -261,6 +261,16 @@ func GetUserIdentity(repo repository.Repo) (*Identity, error) { return i, nil } +// IsUserIdentitySet say if the user has set his identity +func IsUserIdentitySet(repo repository.Repo) (bool, error) { + configs, err := repo.LocalConfig().ReadAll(identityConfigKey) + if err != nil { + return false, err + } + + return len(configs) == 1, nil +} + func (i *Identity) AddVersion(version *Version) { i.versions = append(i.versions, version) }