wg 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (8) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/bin/wg_r +42 -0
  4. data/lib/wg.rb +20 -2
  5. data/lib/wg/version.rb +1 -1
  6. data/wg.gemspec +1 -1
  7. metadata +5 -5
  8. data/bin/wgr +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b63d92137afe05c117506e8190ccac984642d293
4
- data.tar.gz: 03f77ae52b72850e5604a10077e1735980ecb771
3
+ metadata.gz: 3d40fb70dddc4f1f06e2900b9ea5cce9fd507f3f
4
+ data.tar.gz: 697f151ab10c2d55b875c62f8e61537b4dcbfe3a
5
5
  SHA512:
6
- metadata.gz: 6e2bda6630a2b4880434ef1fc8a68b9da4c4aa4cccef623cbda785ad0e83822d1c5ffe5b7ba18467edfaa1cc65526537b1e609b8215327cbcf7fc7174833c70b
7
- data.tar.gz: 19de27c2d4437312a1fce038f9124a6b35ed765e87cdfb8c9e84b30fae2561e7bb2e13caea84a6b3717b0750a34f5131128e1dc9a189833e56ec83160a83c649
6
+ metadata.gz: c44505dd9d1a63e3463689e307fb426fdf52f9311e42070a9629086d5c918a5417472de3c52d93b59b67127aea99adf97dd77e1c64102f42b6a134b7000494eb
7
+ data.tar.gz: bd71cd38b45c7fdc9f770e7724acc249f3f7d476b3f51df161ac9036392a0da6b6e2a2483156f9e51ac495b7e9ccbc206a4272913a1ae01b25226dd1db11a3f2
data/README.md CHANGED
@@ -10,7 +10,7 @@ wg is packaged as a ruby gem, but due to the limitations of the shell, you also
10
10
 
11
11
  First, install wg with: `gem install wg`
12
12
 
13
- Then, add ```function wg { cd `wg`; }``` to your `.bashrc` file (or whatever shell's rc file you use (`.zshrc`, etc...)).
13
+ Then, add `function wg { resp="$(wg_r $@)"; if [[ ${resp:0:1} == "!" ]] ; then cd "${resp:1}"; else echo "${resp}"; fi }` to your `.bashrc` file (or whatever shell's rc file you use (`.zshrc`, etc...)).
14
14
 
15
15
  Happy wg'ing!
16
16
 
@@ -20,8 +20,8 @@ Happy wg'ing!
20
20
 
21
21
  ### Options
22
22
 
23
- - `-h --help` displays a delightful help message.
24
23
  - `-l --lab` will clone from gitlab instead of github or open `~/w/g/l/user/repo`
24
+ - `-h --help` displays a delightful help message.
25
25
 
26
26
  ## Contributing
27
27
 
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'wg'
4
+ require 'optparse'
5
+
6
+ options = {}
7
+
8
+ OptionParser.new do |opts|
9
+ opts.banner = "Usage: wg [options] USERNAME/REPONAME"
10
+ opts.separator ""
11
+
12
+ opts.on("-l", "--lab", "Uses gitlab and ~/w/g/l") do |l|
13
+ options[:lab] = l
14
+ end
15
+
16
+ opts.on("-h", "--help", "Prints this help dialog.") do
17
+ puts opts
18
+ exit
19
+ end
20
+ end.parse!
21
+
22
+ args = ARGV
23
+
24
+ # If there are no options given, just display a nice little message
25
+ if args.length == 0 or args.length > 1 then
26
+ puts "Welcome to wg - your git workspace assistant. Try: wg --help"
27
+ exit
28
+ end
29
+
30
+ # Otherwise, let's enter the regular flow.
31
+ repo = args[0]
32
+ git = options[:lab] ? :gitlab : :github
33
+ directory = Wg.build_directory(repo, git)
34
+
35
+ # If the directory doesn't exist, clone it first.
36
+ if !Wg.dir_exists?(directory)
37
+ Wg.clone_repo(repo, git)
38
+ end
39
+
40
+ # Finally, change directory to the repo
41
+ # The "!" bang tells the function to cd the result.
42
+ puts "!#{directory}"
data/lib/wg.rb CHANGED
@@ -1,7 +1,25 @@
1
1
  require "wg/version"
2
2
 
3
3
  module Wg
4
- def self.hi()
5
- puts("lib")
4
+ @workspace_dir = "#{Dir.home}/w/"
5
+ @git_dirs = {
6
+ :github => "g/h/",
7
+ :gitlab => "g/l/"
8
+ }
9
+ @git_urls = {
10
+ :github => "github.com",
11
+ :gitlab => "gitlab.com"
12
+ }
13
+
14
+ def self.build_directory(reponame, git = :github)
15
+ "#{@workspace_dir}#{@git_dirs[git]}#{reponame}"
16
+ end
17
+
18
+ def self.dir_exists?(directory)
19
+ File.directory?(directory)
20
+ end
21
+
22
+ def self.clone_repo(reponame, git = :github)
23
+ exec "git clone git@#{@git_urls[git]}:#{reponame}.git #{self.build_directory(reponame, git)}"
6
24
  end
7
25
  end
@@ -1,3 +1,3 @@
1
1
  module Wg
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.0"
3
3
  end
data/wg.gemspec CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
24
  spec.bindir = "bin"
25
- spec.executables = "wgr"
25
+ spec.executables = "wg_r"
26
26
  spec.require_paths = ["lib"]
27
27
 
28
28
  spec.add_development_dependency "bundler", "~> 1.12"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Ginn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-06 00:00:00.000000000 Z
11
+ date: 2016-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -57,7 +57,7 @@ description: wg is a simple git(hub|lab) command line tool to manage git project
57
57
  email:
58
58
  - sam@samginn.com
59
59
  executables:
60
- - wgr
60
+ - wg_r
61
61
  extensions: []
62
62
  extra_rdoc_files: []
63
63
  files:
@@ -70,7 +70,7 @@ files:
70
70
  - Rakefile
71
71
  - bin/console
72
72
  - bin/setup
73
- - bin/wgr
73
+ - bin/wg_r
74
74
  - lib/wg.rb
75
75
  - lib/wg/version.rb
76
76
  - wg.gemspec
@@ -95,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
95
  version: '0'
96
96
  requirements: []
97
97
  rubyforge_project:
98
- rubygems_version: 2.5.1
98
+ rubygems_version: 2.4.6
99
99
  signing_key:
100
100
  specification_version: 4
101
101
  summary: simple git(hub|lab) command line tool
data/bin/wgr DELETED
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'wg'
4
- require 'optparse'
5
-
6
- options = {}
7
-
8
- OptionParser.new do |parser|
9
- parser.on("-n", "--name NAME", "The name of the person to greet.") do |v|
10
- options[:name] = v
11
- end
12
-
13
- parser.on("-h", "--help", "Prints this help dialog.") do
14
- puts parser
15
- exit
16
- end
17
- end.parse!
18
-
19
- puts "!./lib" if options[:name]