Change summary
cache/repo_cache.go | 4 ++++
commands/user_create.go | 9 ++++++++-
identity/identity.go | 10 ++++++++++
3 files changed, 22 insertions(+), 1 deletion(-)
Detailed changes
@@ -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) {
@@ -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())
@@ -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)
}