[from now] 2014/06/18 13:33:28

diff --git a/src/main/groovy/gaiden/kai/command/InstallAssets.groovy b/src/main/groovy/gaiden/kai/command/InstallAssets.groovy
new file mode 100644
index 0000000..5a6a0c5
--- /dev/null
+++ b/src/main/groovy/gaiden/kai/command/InstallAssets.groovy
@@ -0,0 +1,39 @@
+package gaiden.kai.command
+
+import gaiden.kai.GaidenConfig
+import groovy.io.FileType
+import groovy.transform.CompileStatic
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.stereotype.Component
+
+import java.nio.file.Files
+import java.nio.file.Path
+
+import static java.nio.file.StandardCopyOption.*
+
+@Component
+@CompileStatic
+class InstallAssets implements GaidenCommnad {
+
+    @Autowired
+    GaidenConfig gaidenConfig
+
+    final String name = "install-assets"
+
+    @Override
+    void execute(List<String> options) {
+        Path assets = gaidenConfig.appHome.resolve("assets")
+        assets.eachFileRecurse(FileType.FILES) { Path asset ->
+            def relativePath = gaidenConfig.appHome.relativize(asset)
+            def target = gaidenConfig.userDirectory.resolve(relativePath)
+            if (Files.exists(target)) {
+                print "Overwrite existing file ${relativePath} ? (Y/N): "
+                BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))
+                if (!(reader.readLine().toLowerCase() in ["yes", "y"])) {
+                    return
+                }
+            }
+            Files.copy(asset, target, REPLACE_EXISTING)
+        }
+    }
+}