Provide separate initialization paths for global and in-repo initialiazation

This commit is contained in:
rubyist 2014-06-03 16:41:48 -04:00
parent 66f3e903a1
commit 000aaed1e5
2 changed files with 41 additions and 10 deletions

@ -3,6 +3,7 @@ package commands
import (
"fmt"
"github.com/github/git-media/gitconfig"
"github.com/github/git-media/gitmedia"
"regexp"
)
@ -13,11 +14,43 @@ type InitCommand struct {
var valueRegexp = regexp.MustCompile("\\Agit[\\-\\s]media")
func (c *InitCommand) Run() {
var sub string
if len(c.SubCommands) > 0 {
sub = c.SubCommands[0]
}
switch sub {
case "hooks":
c.hookInit()
default:
c.runInit()
}
fmt.Println("git media initialized")
}
func (c *InitCommand) runInit() {
c.globalInit()
if inRepo() {
c.repoInit()
}
}
func (c *InitCommand) globalInit() {
setFilter("clean")
setFilter("smudge")
requireFilters()
}
fmt.Println("git media initialized")
func (c *InitCommand) repoInit() {
c.hookInit()
}
func (c *InitCommand) hookInit() {
}
func inRepo() bool {
return gitmedia.LocalGitDir != ""
}
func setFilter(filterName string) {

@ -65,16 +65,14 @@ func Environ() []string {
func init() {
var err error
LocalWorkingDir, LocalGitDir, err = resolveGitDir()
if err != nil {
Exit("Not in a git repository")
}
if err == nil {
LocalMediaDir = filepath.Join(LocalGitDir, "media")
LocalLogDir = filepath.Join(LocalMediaDir, "logs")
queueDir = setupQueueDir()
LocalMediaDir = filepath.Join(LocalGitDir, "media")
LocalLogDir = filepath.Join(LocalMediaDir, "logs")
queueDir = setupQueueDir()
if err := os.MkdirAll(TempDir, 0744); err != nil {
Panic(err, "Error trying to create temp directory: %s", TempDir)
if err := os.MkdirAll(TempDir, 0744); err != nil {
Panic(err, "Error trying to create temp directory: %s", TempDir)
}
}
}