aboutsummaryrefslogtreecommitdiff
path: root/command.go
diff options
context:
space:
mode:
Diffstat (limited to 'command.go')
-rw-r--r--command.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/command.go b/command.go
new file mode 100644
index 0000000..803970b
--- /dev/null
+++ b/command.go
@@ -0,0 +1,32 @@
+package main
+
+import (
+ "os"
+ "path/filepath"
+)
+
+func Rename(source, target string) {
+ source, err := filepath.Abs(source)
+ if err != nil {
+ panic("Unable to get abspath of " + source)
+ }
+
+ target, err = filepath.Abs(target)
+ if err != nil {
+ panic("Unable to get abspath of " + target)
+ }
+
+ if !DocCollection.Contain(source) {
+ panic("Database doesn't contain " + source)
+ }
+
+ if err := os.Rename(source, target); err != nil {
+ panic(err)
+ }
+
+ doc := DocCollection[source]
+ for backlink := range doc.backlinks {
+ DocCollection[backlink].UpdateLinks(source, target)
+ }
+
+}