git-iam 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa4f81429874fb8e7f81e81ae814493fe48b2132
4
- data.tar.gz: 73a64286cedaaf7cb6b2e979bf4c5cc1f28f3920
3
+ metadata.gz: 486931ce996602ce85db9bba9d6f8c8dce126f20
4
+ data.tar.gz: 73d50c12e31f18329c2cd1afdc60263e17f7efaa
5
5
  SHA512:
6
- metadata.gz: b2b53dbb1991e59c13963691ef141cacac5450db69c7925901d67f48a1a064841dfedccf17b209320fe3f5ab2985c68a8ae4ac0b0171cc2691221bd90ea27bc4
7
- data.tar.gz: ab9dce3e88c803fe50533d8e1eee34b3d22125cb2cb62057d682d1345d3d4449ad0a737786e242a82e939b71404a032747cce09c6bad1a079c405cd62a07eed1
6
+ metadata.gz: 99a3da8634fec16454504f75f441c4053db962a79b20346475636f9e8d107d9d13c081a891faf7725eea98ee19b7eccd1de99dacbfcdb38a0b14e071358a0575
7
+ data.tar.gz: ea7df238219c43baa264048c5b8342981d9f2bb0e4c61d74014b6b0bdd1e7ca1b0885f2dfade38f945f2ad910572d173a85bc57deb61c0bfb54e513656de33f3
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ notes*
data/README.md CHANGED
@@ -1,71 +1,77 @@
1
- # git_iam
1
+ # git-iam
2
2
 
3
3
  Command line tool for easily switching git authors, remotes, and other configs on shared computers.
4
4
 
5
- **Currently in development**
6
-
7
- References
8
-
9
- * [Great ruby gem cli guide](https://github.com/radar/guides/blob/master/gem-development.md)
10
- * [Nice ruby executable resource](http://robdodson.me/blog/2012/06/14/how-to-write-a-command-line-ruby-gem/)
11
- * Major props to [git pair](https://github.com/chrisk/git-pair)
12
- * Inspiration from [pivotal git scripts](https://github.com/pivotal/git_scripts)
13
-
14
5
  ## Installation
15
6
 
16
7
  ```
17
- $ gem install git_iam
8
+ $ gem install git-iam
18
9
  ```
19
10
 
20
11
  ## Usage
21
12
 
22
- Run via the command line using the command `iam`.
13
+ Run via the command line using the command `git iam`.
14
+
15
+ Set user name and remote origin url
16
+
17
+ ```
18
+ $ git iam [USERNAME]
19
+ ```
23
20
 
24
- Set current user name and remote origin url
21
+ Set user email along with name and remote origin url. (same as command above, optionally accepting an email address)
25
22
 
26
23
  ```
27
- $ iam [user_name]
24
+ $ git iam [USERNAME] [EMAIL]
28
25
  ```
29
26
 
30
- Check current user name, email and remote origin url
27
+ View current user name, email and remote origin url
31
28
 
32
29
  ```
33
- $ iam who
30
+ $ git iam who
34
31
  ```
35
32
 
36
33
  Reset to global git config values
37
34
 
38
35
  ```
39
- $ iam reset
36
+ $ git iam reset
40
37
  ```
41
38
 
39
+ ### Looking for a pairing solution?
40
+
41
+ `git-iam` works great with [git-pair](https://github.com/chrisk/git-pair). Easily set up a pair profile with `git-pair`, and then change config values with `git-iam`.
42
+
42
43
  ## Available commands
43
44
 
45
+ * `git iam [USERNAME]` Set user name and remote origin url.
46
+ * `git iam [USERNAME] [EMAIL]` Set user email along with name and remote origin url.
47
+ * `git iam who` View current user name, email and remote origin url.
48
+ * `git iam reset` Reset to global git config values.
49
+ * `git iam user [USERNAME]` Set user name.
50
+ * `git iam email [EMAIL]` Set user email.
51
+
44
52
  Find all available commands
45
53
 
46
54
  ```
47
- $ iam
55
+ $ git iam
48
56
  ```
49
57
 
50
58
  Find details about a command
51
59
 
52
60
  ```
53
- $ iam help [command]
61
+ $ git iam help [COMMAND]
54
62
  ```
55
63
 
56
64
  ## TODO
57
65
 
58
- * Create pairing module - consider command `iam also [username]`
59
- * Add options to `iam [username]` commands, such as `--nameonly` or `--remoteonly`.
60
- * Create helpers for changing options on remote urls `--branch`, `--remote`, etc.
61
- * Create helper for viewing current configs.
66
+ * Create pairing module - consider command `git iam also [username]`
67
+ * Add a remote-only setting option `git iam [USERNAME] --remoteonly [REMOTEACOUNT]`, or `git iam remote [REMOTEACOUNT]`
68
+ * Create helpers for changing options on remote urls `--branch`, `--remote`, etc. (might overlap with previous bullet)
62
69
  * Consider integrating `git-pair` for pairing config.
63
- * Implement a `--force` for `iam [username]` incase the username conflicts with any reserved keywords.
64
- * Throw error if `remote.origin.url` not set.
70
+ * Implement a `--force` for `git iam [username]` incase the username conflicts with any reserved keywords.
65
71
 
66
72
  ## Contributing
67
73
 
68
- 1. Fork it ( git shttp://github.com/<my-github-username>/git_iam/fork )
74
+ 1. Fork it
69
75
  2. Create your feature branch (`git checkout -b my-new-feature`)
70
76
  3. Commit your changes (`git commit -am 'Add some feature'`)
71
77
  4. Push to the branch (`git push origin my-new-feature`)
data/features/iam.feature CHANGED
@@ -7,12 +7,25 @@ Feature: Iam
7
7
  When I run "git iam who"
8
8
  Then the output should contain "user.name"
9
9
 
10
- Scenario: Set current user
10
+ Scenario: Set current user config
11
11
  When I run "git iam tyler"
12
12
  Then the output should contain "tyler"
13
13
 
14
- # Not a very good test
15
- # Mainly used to reset previous test
14
+ Scenario: Set user name only
15
+ When I run "git iam user tyleeeee"
16
+ Then the output should contain "tyleeeee"
17
+
18
+ Scenario: Set email only
19
+ When I run "git iam email tyler@co.co"
20
+ Then the output should contain "tyler@co.co"
21
+
22
+ Scenario: Set current user config, including email
23
+ When I run "git iam newTyler co@co.co"
24
+ Then the output should contain "newTyler"
25
+ Then the output should contain "co@co.co"
26
+
27
+ # not a great test
28
+ # largely used to reset git config after tests run
16
29
  Scenario: Reset settings
17
30
  When I run "git iam reset"
18
31
  Then the output should contain "user.name"
data/lib/git-iam/cli.rb CHANGED
@@ -6,45 +6,44 @@ module GitIam
6
6
 
7
7
  desc "who", "Returns current user name and email from config."
8
8
  def who
9
- Helpers.pretty_print GitIam::Iam.who
9
+ Helpers.print GitIam::Iam.who
10
10
  end
11
11
 
12
12
  desc "reset", "Reset the current local git settings to the global config."
13
13
  def reset
14
- Helpers.pretty_print GitIam::Iam.reset
14
+ GitIam::Iam.reset
15
+ who
15
16
  end
16
17
 
17
- # Not implemented
18
- # Will later be used for pairing
19
- # desc "aka [USERNAME]", "Sets current user name and remote account name."
20
- # def aka(user_name)
21
- # Helpers.pretty_print GitIam::Iam.set_user_name(user_name)
22
- # end
18
+ desc "[USERNAME] [EMAIL]", "Set git user name and remote origin account. Optionally set git email address, if desired."
19
+ def set_user_config(args)
20
+ GitIam::Iam.set_user_config args
21
+ who
22
+ end
23
+
24
+ desc "user [USERNAME]", "Set git user name."
25
+ def user(name)
26
+ GitIam::Iam.set_user_name name
27
+ who
28
+ end
23
29
 
24
- desc "[USERNAME]", "Sets current user name and remote origin account."
25
- def set_user(user, *args)
26
- Helpers.pretty_print GitIam::Iam.set_user(user)
30
+ desc "email [EMAIL]", "Set git email address."
31
+ def email(email)
32
+ GitIam::Iam.set_user_email email
33
+ who
27
34
  end
28
35
 
29
36
  # allows user to be set without special flags
30
37
  def method_missing(method, *args)
31
- # might be useful for taking in more information with default iam
32
- # such as email
33
- # args = [method.to_s] + args
34
-
35
- set_user method.to_s
38
+ args.unshift(method.to_s)
39
+ set_user_config args
36
40
  end
37
41
  end
38
42
 
39
43
  class Helpers
40
- def self.pretty_print(statement)
41
- if statement.is_a?(Array)
42
- return statement.each{ |s| pretty_print s }
43
- end
44
-
44
+ def self.print(statement)
45
45
  statement.each do |key, value|
46
- print key.ljust(20)
47
- print value + "\n"
46
+ puts "#{key}: #{value}"
48
47
  end
49
48
  end
50
49
  end
data/lib/git-iam/iam.rb CHANGED
@@ -1,53 +1,11 @@
1
- MESSAGES = {
2
- remote_origin: 'remote.origin.url',
3
- user_name: 'user.name',
4
- user_email: 'user.email'
5
- }
6
-
7
1
  module GitIam
8
2
  class Iam
9
-
10
- def self.set_user(user)
11
- self.set_user_name(user)
12
- # self.set_user_email
13
- self.set_origin_account(user)
14
- who
15
- end
16
-
17
- def self.set_user_name(user_name)
18
- `git config --local user.name #{user_name}`
19
- end
20
-
21
- def self.set_user_email
22
- # TODO - implement setting user email
23
- end
24
-
25
- def self.set_origin_account(account)
26
- segments = remote_origin.split('/')
27
- segments[-2] = account
28
-
29
- origin_url = segments.join('/')
30
-
31
- `git remote set-url origin #{origin_url}`
32
- end
33
-
34
3
  def self.who
35
- [
36
- msg(:user_name, user_name),
37
- msg(:user_email, user_email),
38
- msg(:remote_origin, remote_origin)
39
- ]
40
- end
41
-
42
- def self.msg(key, value)
43
- { MESSAGES[key] => value }
44
- end
45
-
46
- def self.reset
47
- `git config --local --unset user.name`
48
- `git config --local --unset user.email`
49
- set_origin_account user_name
50
- who
4
+ {
5
+ 'user.name' => user_name,
6
+ 'user.email' => user_email,
7
+ 'remote.origin.url' => remote_origin
8
+ }
51
9
  end
52
10
 
53
11
  def self.user_name
@@ -71,5 +29,37 @@ module GitIam
71
29
 
72
30
  value
73
31
  end
32
+
33
+ def self.set_user_config(args)
34
+ user_name = args.shift
35
+ user_email = args.shift
36
+ self.set_user_name user_name
37
+ self.set_user_email user_email unless user_email.nil?
38
+ self.set_origin_account user_name
39
+ end
40
+
41
+ def self.set_user_name(user_name)
42
+ `git config --local user.name #{user_name}`
43
+ end
44
+
45
+ def self.set_user_email(user_email)
46
+ `git config --local user.email #{user_email}`
47
+ end
48
+
49
+ def self.set_origin_account(account)
50
+ segments = remote_origin.split('/')
51
+ segments[-2] = account
52
+
53
+ origin_url = segments.join('/')
54
+
55
+ `git remote set-url origin #{origin_url}`
56
+ end
57
+
58
+ def self.reset
59
+ `git config --local --unset user.name`
60
+ `git config --local --unset user.email`
61
+ set_origin_account user_name
62
+ end
63
+
74
64
  end
75
65
  end
@@ -1,3 +1,3 @@
1
1
  module GitIam
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-iam
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - tgolson