summaryrefslogtreecommitdiffstats
path: root/pkg/commands
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2018-08-19 20:41:04 +1000
committerJesse Duffield <jessedduffield@gmail.com>2018-08-19 20:41:04 +1000
commitaa4d739577f627ca6a3843ccb9e9468c7dd7aeba (patch)
tree739ea69769d7e644f17222bf44b05c74ccfd4438 /pkg/commands
parent51558f51ab3b54b445f7449582a060f1bc42de18 (diff)
fix ignore feature
Diffstat (limited to 'pkg/commands')
-rw-r--r--pkg/commands/git.go6
-rw-r--r--pkg/commands/os.go11
2 files changed, 13 insertions, 4 deletions
diff --git a/pkg/commands/git.go b/pkg/commands/git.go
index 5176e55c9..557e6a8c0 100644
--- a/pkg/commands/git.go
+++ b/pkg/commands/git.go
@@ -461,10 +461,8 @@ func (c *GitCommand) GetLog() string {
}
// Ignore adds a file to the gitignore for the repo
-func (c *GitCommand) Ignore(filename string) {
- if _, err := c.OSCommand.RunDirectCommand("echo '" + filename + "' >> .gitignore"); err != nil {
- panic(err)
- }
+func (c *GitCommand) Ignore(filename string) error {
+ return c.OSCommand.AppendLineToFile(".gitignore", filename)
}
// Show shows the diff of a commit
diff --git a/pkg/commands/os.go b/pkg/commands/os.go
index b72585e44..9756d619d 100644
--- a/pkg/commands/os.go
+++ b/pkg/commands/os.go
@@ -174,3 +174,14 @@ func (c *OSCommand) Unquote(message string) string {
message = strings.Replace(message, `"`, "", -1)
return message
}
+
+func (C *OSCommand) AppendLineToFile(filename, line string) error {
+ f, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+
+ _, err = f.WriteString("\n" + line)
+ return err
+}