Skip to content

Commit 0487d93

Browse files
committed
fixing some stuff
1 parent f922faa commit 0487d93

File tree

7 files changed

+45
-19
lines changed

7 files changed

+45
-19
lines changed

Dockerfile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# This is for dev/debugging. No intention of an entrykit base image...
2+
FROM alpine:3.2
3+
ADD ./build/Linux/entrykit /bin/entrykit
4+
RUN /bin/entrykit --symlink
5+
RUN echo -e "#!/bin/sh\nwhile true; do sleep 1; echo \$RANDOM \$1; done" > /bin/numbers \
6+
&& chmod +x /bin/numbers
7+
8+
ENTRYPOINT ["codep", "-p", "alpha=/bin/numbers foo", "beta=/bin/numbers bar"]

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
NAME=entrykit
22
ARCH=$(shell uname -m)
3-
VERSION=0.1.0
3+
VERSION=0.2.0
44

55
.PHONY: build release
66

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Entrypoint tools for elegant, programmable containers
88
- Good for image authors. Eliminates helper/start scripts or depending on shells.
99
- Can be good for image users. Allows users to program/extend containers.
1010
11-
/bin/entrykit symlink
11+
/bin/entrykit --symlink
1212
1313
-e allow environment as well
1414
-E allow environment prefixed with EK_

cmd/entrykit.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"fmt"
45
"os"
56

67
"github.com/progrium/entrykit"
@@ -13,12 +14,18 @@ import (
1314
_ "github.com/progrium/entrykit/waitgrp"
1415
)
1516

17+
var Version string
18+
1619
func main() {
17-
if len(os.Args) > 1 && os.Args[1] == "symlink" {
18-
entrykit.Symlink()
19-
return
20+
if len(os.Args) > 1 {
21+
switch os.Args[1] {
22+
case "-v", "--version":
23+
fmt.Println(Version)
24+
os.Exit(0)
25+
case "--symlink":
26+
entrykit.Symlink()
27+
os.Exit(0)
28+
}
2029
}
21-
cmd := entrykit.RanAs()
22-
entrykit.Cmds[cmd](
23-
entrykit.NewConfig(cmd, true))
30+
entrykit.RunCmd()
2431
}

config.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,13 @@ func NewConfig(cmd string, exec bool) *Config {
2929
Loop:
3030
for i, arg := range args {
3131
switch arg {
32-
case "-v", "--version":
33-
fmt.Println(Version)
34-
os.Exit(0)
3532
case "-e":
3633
useEnv = true
3734
case "-E":
3835
useEnv = true
3936
namespaceEnv = true
4037
case "-p":
38+
println("warning: -p flag not implemented yet")
4139
config.Prefix = true
4240
case "-f":
4341
configFile = args[i+1]

config_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package entrykit
2+
3+
import "testing"
4+
5+
func TestConfig(t *testing.T) {
6+
// todo!
7+
}

entrykit.go

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@ package entrykit
22

33
import (
44
"fmt"
5+
"log"
56
"os"
67
"os/exec"
78
"os/signal"
89
"path/filepath"
910
"strings"
1011
"syscall"
1112

13+
"github.com/kardianos/osext"
1214
"github.com/mgood/go-posix"
1315
)
1416

15-
var Version string
16-
1717
var Cmds = make(map[string]func(config *Config))
1818

1919
var runlist = []string{
@@ -26,10 +26,10 @@ var runlist = []string{
2626
}
2727

2828
func init() {
29-
Cmds[""] = Run
29+
Cmds["entrykit"] = RunMulti
3030
}
3131

32-
func Run(config *Config) {
32+
func RunMulti(config *Config) {
3333
if len(config.Tasks) > 0 {
3434
Error(fmt.Errorf("Entrykit cannot take tasks via arguments"))
3535
}
@@ -89,20 +89,26 @@ func CommandTask(task string) *exec.Cmd {
8989
}
9090

9191
func Symlink() {
92+
binaryPath, err := osext.Executable()
93+
if err != nil {
94+
log.Fatal(err)
95+
}
9296
for name, _ := range Cmds {
93-
os.Symlink(os.Args[0], filepath.Dir(os.Args[0])+"/"+name)
97+
target := filepath.Dir(binaryPath) + "/" + name
98+
fmt.Println("Creating symlink", target, "...")
99+
os.Symlink(os.Args[0], target)
94100
}
95101
}
96102

97-
func RanAs() string {
103+
func RunCmd() {
98104
cmdRun := filepath.Base(os.Args[0])
99-
cmd := ""
105+
cmd := "entrykit"
100106
for name := range Cmds {
101107
if name == cmdRun {
102108
cmd = name
103109
}
104110
}
105-
return cmd
111+
Cmds[cmd](NewConfig(cmd, true))
106112
}
107113

108114
func Error(err error) {

0 commit comments

Comments
 (0)