git-shove 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +5 -0
- data/bin/git-shove +5 -0
- data/lib/git-shove.rb +37 -0
- metadata +48 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c15020b090d62dc1a71a9c741a197ca3a291acf3
|
4
|
+
data.tar.gz: a92bdda89ecab6abd430206c2ad878ccb6657fc7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b19d829c502f2342fb118eb0f3cbfb39e21d9c8f244ae60bd4490dce3ed517166bbd06cc93124993fcb49c41bc93fdadabf517ad0f686a197d29fb6c297f5792
|
7
|
+
data.tar.gz: cfb1e532c67cef3eb90bb93cb835cd02ae961a4319e3976c89e7a2f68d9903ac3443f0723b39bb95e9f5e9ed07b80b778c69e0f4002a93808b266d52ec76275c
|
data/README.md
ADDED
data/bin/git-shove
ADDED
data/lib/git-shove.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
module GitShove
|
2
|
+
|
3
|
+
DEFAULT_REPO_DIR = '/var/git'
|
4
|
+
DEFAULT_GROUP_NAME = 'instructors'
|
5
|
+
DEFAULT_REMOTE_NAME = 'origin'
|
6
|
+
|
7
|
+
class Shover
|
8
|
+
|
9
|
+
def shove(hostname)
|
10
|
+
repo_name = File.basename(Dir.pwd) + '.git'
|
11
|
+
repo_dir = "#{DEFAULT_REPO_DIR}/#{repo_name}"
|
12
|
+
|
13
|
+
remote_commands = [
|
14
|
+
"git init --bare --shared=group #{repo_dir}",
|
15
|
+
"chgrp -R #{DEFAULT_GROUP_NAME} #{repo_dir}",
|
16
|
+
"chmod -R g+w #{repo_dir}",
|
17
|
+
"find #{repo_dir} -type d -print0 | xargs -0 chmod g+s"
|
18
|
+
].join(" && ")
|
19
|
+
|
20
|
+
try(%Q[ssh #{hostname} "#{remote_commands}"])
|
21
|
+
|
22
|
+
remote_url = "#{hostname}:#{repo_dir}"
|
23
|
+
|
24
|
+
try("git remote add #{DEFAULT_REMOTE_NAME} #{remote_url}")
|
25
|
+
try("git push -u #{DEFAULT_REMOTE_NAME} master")
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def try(cmd)
|
31
|
+
puts(cmd)
|
32
|
+
puts(%x[#{cmd}])
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
metadata
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: git-shove
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Max Cantor
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-08-08 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: |2
|
14
|
+
Easily create remote repos from local ones.
|
15
|
+
email: max@maxcantor.net
|
16
|
+
executables:
|
17
|
+
- git-shove
|
18
|
+
extensions: []
|
19
|
+
extra_rdoc_files: []
|
20
|
+
files:
|
21
|
+
- README.md
|
22
|
+
- bin/git-shove
|
23
|
+
- lib/git-shove.rb
|
24
|
+
homepage: http://github.com/mcantor/git-shove
|
25
|
+
licenses: []
|
26
|
+
metadata: {}
|
27
|
+
post_install_message:
|
28
|
+
rdoc_options: []
|
29
|
+
require_paths:
|
30
|
+
- lib
|
31
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
requirements: []
|
42
|
+
rubyforge_project:
|
43
|
+
rubygems_version: 2.2.0
|
44
|
+
signing_key:
|
45
|
+
specification_version: 4
|
46
|
+
summary: Feed me.
|
47
|
+
test_files: []
|
48
|
+
has_rdoc: false
|