octopush 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/octopush +4 -0
  3. data/lib/octopush.rb +76 -0
  4. metadata +88 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fe2ef05c127543a8644c954e3cd94a7bc84a577c
4
+ data.tar.gz: f820363c56e43fbe2ce367b9f9e7505e440bd22d
5
+ SHA512:
6
+ metadata.gz: 9529e58a02413094e68fca3e6dba6f4dea6588f831fa685ff2e45ee044b9025f82dcffb65912161bbbae5040666c3a6929aca2d40ca297ef4f3e04f8b2fc516f
7
+ data.tar.gz: c41d719d65fcbecc7ca5d2644cda43f8a853a24dca7a8a4af04431f3115d885c4b6852a6ebd10d4374f1dde189a6e974ee05255791a146c9d0ab07b7e371e54c
data/bin/octopush ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require 'octopush'
3
+ Octopush.start(['octopush', ARGV].flatten)
4
+
data/lib/octopush.rb ADDED
@@ -0,0 +1,76 @@
1
+ require 'thor'
2
+ require 'fileutils'
3
+ require 'colorize'
4
+ require 'github_api'
5
+
6
+ CONFIGURATION_FILE = (ENV['HOME'] + '/.octopushrc')
7
+
8
+ class Octopush < Thor
9
+
10
+ desc "octopush REPOSITORY_NAME", "uploads REPOSITORY_NAME to github (creates an empty one if needed)"
11
+ def octopush(repository_name)
12
+ @repository_name = repository_name
13
+
14
+ # re-initializing existing repos is safe:
15
+ # http://stackoverflow.com/questions/5149694/does-running-git-init-twice-initialize-a-repository-or-reinitialize-an-existing
16
+ `git init #{repository_name}`
17
+
18
+ Dir.chdir("./#{repository_name}")
19
+ FileUtils.touch('README.md')
20
+ `git add README.md`
21
+ `git commit -m 'add README.md (via octopush)'`
22
+ create_on_github
23
+ add_github_remote
24
+ push_repo
25
+ end
26
+
27
+ private
28
+
29
+ def create_on_github
30
+ github_user.repos.create(name: repository_name)
31
+ end
32
+
33
+ def add_github_remote(remote_name = 'origin')
34
+ `git remote add #{remote_name} https://github.com/#{configuration['username']}/#{repository_name}.git`
35
+ end
36
+
37
+ def push_repo
38
+ `git push -u origin master`
39
+ end
40
+
41
+ def configuration
42
+ @configuration ||= load_configuration
43
+ end
44
+
45
+ def load_configuration
46
+ begin
47
+ YAML.load(File.read(CONFIGURATION_FILE))
48
+ rescue
49
+ create_empty_configuration
50
+ exit
51
+ end
52
+ end
53
+
54
+ def create_empty_configuration
55
+ configuration ="username: <your_username>\npassword: <your_password>"
56
+ File.open(CONFIGURATION_FILE, 'wb') { |f| f.write(configuration) }
57
+
58
+ puts ('*' * 50).colorize(:red)
59
+ puts "No configuration found!".colorize(:red)
60
+ puts "Initialized configuration file in ~/.octopushrc"
61
+ puts ".. go edit it"
62
+ puts ('*' * 50).colorize(:red)
63
+ end
64
+
65
+ def repository_name
66
+ @repository_name
67
+ end
68
+
69
+ def github_user
70
+ @github_user ||= Github.new({
71
+ login: configuration['username'],
72
+ password: configuration['password']
73
+ })
74
+ end
75
+
76
+ end
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: octopush
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Martino Visintin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-08-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: github_api
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: colorize
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: ''
56
+ email: vise890@gmail.com
57
+ executables:
58
+ - octopush
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/octopush.rb
63
+ - bin/octopush
64
+ homepage: https://github.com/vise890/octopush
65
+ licenses:
66
+ - MIT
67
+ metadata: {}
68
+ post_install_message:
69
+ rdoc_options: []
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - '>='
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ requirements: []
83
+ rubyforge_project:
84
+ rubygems_version: 2.0.7
85
+ signing_key:
86
+ specification_version: 4
87
+ summary: Upload repos to github from the command line
88
+ test_files: []