dssh 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/bin/dssh +6 -93
  3. data/lib/dssh.rb +6 -0
  4. data/share/dssh +108 -0
  5. metadata +3 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: db8ddf3c18d13311bc5e4a528392faf0145719ac
4
- data.tar.gz: 1140a31c5ca2c44003a71f27202ac569ae366ac2
3
+ metadata.gz: e6c195466d73ad8235b04a1af45db1f59c61ea5c
4
+ data.tar.gz: 775a91c9e7e56f0df75fb26a5e4bf60f0ba58143
5
5
  SHA512:
6
- metadata.gz: 717d47692d6ea40bb33759abbd8e3e4ce9c02fd912afe00a1f6d9d7a38a43ac5aac8384ec6c97aba85df26ca6dffde6a7fd50b3f8ea2826e513500d8381f67cf
7
- data.tar.gz: fa3b7f6ebdf70822d4d68ab7d0f23fe957aec5b9db9a531c4d907c761e4e3f1f99732ee023f0678db0a7cfce10c36e0af79759f71a1a8cb41b8b018b939f286e
6
+ metadata.gz: c5d011035153ff5bf20575aa1e3797d5315fa38ca9c036c662e5f9ca64f81340bc40801e87490886703d142a8b3b6793681730dfd366d0ea42e7f3e4e60da3b0
7
+ data.tar.gz: 3d4c2751a5ada363a599fe753df8d685c4f88a109ff79daf6ef8beb7e038d359f046f38bbc9101eb341ec22d325e6bb007ec67b71fd1833cbe7a7cb4cc280a14
data/bin/dssh CHANGED
@@ -1,94 +1,7 @@
1
- #!/bin/bash
2
-
3
-
4
- ################################
5
- ######## Usage & Options #######
6
- ################################
7
-
8
- usage() {
9
- cat << EOF
10
-
11
- Usage: $0 [options]
12
-
13
- Options:
14
- -h Show this message
15
- -v Verbose
16
-
17
- Uses nsenter to provice a terminal to a Docker container.
18
- Looks and feels like an ssh client.
19
-
20
- EOF
21
- }
22
-
23
- VERBOSE=
24
-
25
- while getopts “hv” OPTION
26
- do
27
- case $OPTION in
28
- h)
29
- usage
30
- exit 1
31
- ;;
32
- v)
33
- VERBOSE=1
34
- ;;
35
- ?)
36
- usage
37
- exit
38
- ;;
39
- esac
40
- done
41
-
42
-
43
- ################################
44
- ######## Go do stuff!!!! #######
45
- ################################
46
-
47
- CONTAINER_NAMES=$1
48
-
49
- if [[ -z "$CONTAINER_NAMES" ]]; then
50
- NL=$'\n'
51
- CONTAINER_NAMES=$(docker ps -q | sed ':a;N;$!ba;s/\n/ /g')
52
- if [[ "$?" != "0" ]]; then
53
- echo "If you're on OSX, make sure boot2docker is working properly"
54
- echo "Otherwise, use sudo"
55
- fi
56
- fi
57
-
58
- if [[ -z "$CONTAINER_NAMES" ]]; then
59
- echo "Usage: $0 container_name"
60
- exit 1
61
- fi
62
-
63
- #https://github.com/jpetazzo/nsenter
64
-
65
- CONTAINER_NAMES=( ""${CONTAINER_NAMES[$@]}"" )
66
- CONTAINER_NAME=${CONTAINER_NAMES[0]}
67
- unset CONTAINER_NAMES[0]
68
- echo "Will use search for a container matching ""$CONTAINER_NAME"""
69
-
70
- if [[ ! -f /usr/local/bin/nsenter ]]; then
71
- docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter
72
- fi
73
-
74
- echo "Fetching pid of $CONTAINER_NAME..."
75
- PID=$(docker inspect --format {{.State.Pid}} $CONTAINER_NAME)
76
-
77
- if [[ "$?" != "0" ]]; then
78
- echo ""
79
- echo "Run \`docker ps\` to see available containers"
80
- docker ps
81
- echo ""
82
- exit 1
83
- fi
84
-
85
- echo "Connecting to container $CONTAINER_NAME with pid $PID..."
86
- nsenter --target $PID --mount --uts --ipc --net --pid
87
-
88
- if [[ "$?" != "0" ]]; then
89
- exit 0;#/TODO: iterate?
90
- fi
91
-
92
-
93
-
1
+ #!/usr/bin/env ruby
94
2
 
3
+ name = 'dssh'
4
+ args = "'#{ARGV.join("','")}'"
5
+ gempath = Gem::Specification.find_by_name( name )
6
+ exepath = File.join( gempath.full_gem_path, 'share/dssh' )
7
+ exec( "/bin/bash #{exepath} #{args} 2>&1" )
@@ -0,0 +1,6 @@
1
+
2
+ name = 'dssh'
3
+ args = "'#{ARGV.join("','")}'"
4
+ gempath = Gem::Specification.find_by_name( name )
5
+ exepath = File.join( gempath.full_gem_path, 'share/dssh' )
6
+ exec( "/bin/bash #{exepath} #{args} 2>&1" )
@@ -0,0 +1,108 @@
1
+ #! /usr/bin/env bash
2
+
3
+
4
+ ################################
5
+ ######## Usage & Options #######
6
+ ################################
7
+
8
+ usage() {
9
+ cat << EOF
10
+
11
+ Usage: $0 [options]
12
+
13
+ Options:
14
+ -h Show this message
15
+ -v Verbose
16
+
17
+ Uses nsenter to provice a terminal to a Docker container.
18
+ Looks and feels like an ssh client.
19
+
20
+ EOF
21
+ }
22
+
23
+ VERBOSE=
24
+
25
+ while getopts “hv” OPTION
26
+ do
27
+ case $OPTION in
28
+ h)
29
+ usage
30
+ exit 1
31
+ ;;
32
+ v)
33
+ VERBOSE=1
34
+ ;;
35
+ ?)
36
+ usage
37
+ exit
38
+ ;;
39
+ esac
40
+ done
41
+
42
+
43
+ ################################
44
+ ######## Set Options ###########
45
+ ################################
46
+
47
+ CONTAINER_NAMES=$1
48
+
49
+ if [[ -z "$CONTAINER_NAMES" ]]; then
50
+ NL=$'\n'
51
+ CONTAINER_NAMES=$(docker ps -q | sed ':a;N;$!ba;s/\n/ /g')
52
+ if [[ "$?" != "0" ]]; then
53
+ echo "If you're on OSX, make sure boot2docker is working properly"
54
+ echo "Otherwise, use sudo"
55
+ fi
56
+ fi
57
+
58
+ if [[ -z "$CONTAINER_NAMES" ]]; then
59
+ echo "Usage: $0 container_name"
60
+ exit 1
61
+ fi
62
+
63
+ CONTAINER_NAMES=( ""${CONTAINER_NAMES[$@]}"" )
64
+ CONTAINER_NAME=${CONTAINER_NAMES[0]}
65
+ unset CONTAINER_NAMES[0]
66
+
67
+
68
+
69
+ ################################
70
+ ######### Dependencies #########
71
+ ################################
72
+
73
+
74
+ #https://github.com/jpetazzo/nsenter
75
+ if [[ ! -f /usr/local/bin/nsenter ]]; then
76
+ echo "################################################################"
77
+ echo "###################### Fetching nsenter ########################"
78
+ echo "############# (https://github.com/jpetazzo/nsenter) ############"
79
+ echo "################################################################"
80
+ echo ""
81
+ docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter
82
+ echo ""
83
+ fi
84
+
85
+
86
+ ################################
87
+ ######## Go do stuff!!!! #######
88
+ ################################
89
+
90
+ echo "Searching for a container matching \"$CONTAINER_NAME\""
91
+ PID=$(docker inspect --format {{.State.Pid}} $CONTAINER_NAME)
92
+ if [[ "$?" != "0" ]]; then
93
+ echo ""
94
+ echo "Run \`docker ps\` to see available containers"
95
+ docker ps
96
+ echo ""
97
+ exit 1
98
+ fi
99
+
100
+ echo "Connecting to container $CONTAINER_NAME with pid $PID..."
101
+ nsenter --target $PID --mount --uts --ipc --net --pid
102
+ if [[ "$?" != "0" ]]; then
103
+ exit 0;#/TODO: iterate?
104
+ fi
105
+
106
+
107
+
108
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dssh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen Johnson
@@ -19,6 +19,8 @@ extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
21
  - bin/dssh
22
+ - lib/dssh.rb
23
+ - share/dssh
22
24
  homepage: http://rubygems.org/gems/dssh
23
25
  licenses:
24
26
  - MIT