]> gitweb.factorcode.org Git - factor.git/commitdiff
Add scaffolding for platforms.txt, add option to fuel-scaffold-vocab
authorErik Charlebois <erikcharlebois@gmail.com>
Tue, 23 Feb 2010 04:17:49 +0000 (20:17 -0800)
committerErik Charlebois <erikcharlebois@gmail.com>
Tue, 23 Feb 2010 04:17:49 +0000 (20:17 -0800)
basis/tools/scaffold/scaffold.factor
extra/fuel/fuel.factor
misc/fuel/fuel-scaffold.el

index fee37496c8ffd20c8f6a6451996fb7c441c4c711..9e1d08e35280fb1918e934813b39c3f3ee1ec3ea 100644 (file)
@@ -267,6 +267,9 @@ PRIVATE>
 : scaffold-summary ( vocab summary -- )
     [ "summary.txt" ] dip scaffold-metadata ;
 
+: scaffold-platforms ( vocab platforms -- )
+    [ "platforms.txt" ] dip scaffold-metadata ;
+
 : scaffold-vocab ( vocab-root string -- )
     {
         [ scaffold-directory ]
index 2934d5d43c7de3c3c578a866a604be65f572c764..9d47bf8cc4d4225113c87a2ef9ca7bd76312913c 100644 (file)
@@ -162,6 +162,10 @@ PRIVATE>
     [ scaffold-summary ]
     [ drop [ vocab-summary-path ] keep swap vocab-append-path absolute-path fuel-eval-set-result ] 2bi ;
 
+: fuel-scaffold-platforms ( name platforms -- )
+    [ scaffold-platforms ]
+    [ drop [ vocab-platforms-path ] keep swap vocab-append-path absolute-path fuel-eval-set-result ] 2bi ;
+
 : fuel-scaffold-get-root ( name -- ) find-vocab-root fuel-eval-set-result ;
 
 ! Remote connection
index dc2a09713d847c4f60d6bfc5406e0d8b96b1eaca..0078300fd1908f5907b75c74a8f28a8a27629c56 100644 (file)
@@ -96,6 +96,10 @@ IN: %s
   (let ((cmd `(:fuel* (,vocab ,summary fuel-scaffold-summary) "fuel")))
     (fuel-eval--send/wait cmd)))
 
+(defsubst fuel-scaffold--create-platforms (vocab platforms)
+  (let ((cmd `(:fuel* (,vocab ,platforms fuel-scaffold-platforms) "fuel")))
+    (fuel-eval--send/wait cmd)))
+
 (defun fuel-scaffold--help (parent)
   (when (and parent (fuel-scaffold--check-auto fuel-scaffold-help-autoinsert-p))
     (let* ((ret (fuel-scaffold--create-docs (fuel-scaffold--vocab parent)))
@@ -131,6 +135,7 @@ You can configure `fuel-scaffold-developer-name' (set by default to
                                 nil t (or root-hint "resource:")))
          (summary (read-string "Vocab summary (empty for none): "))
          (tags (read-string "Vocab tags (empty for none): "))
+         (platforms (read-string "Vocab platforms (empty for all): "))
          (help (y-or-n-p "Scaffold help? "))
          (tests (y-or-n-p "Scaffold tests? "))
          (cmd `(:fuel* ((,root ,name ,fuel-scaffold-developer-name)
@@ -143,6 +148,8 @@ You can configure `fuel-scaffold-developer-name' (set by default to
       (fuel-scaffold--create-summary name summary))
     (when (not (equal "" tags))
       (fuel-scaffold--create-tags name tags))
+    (when (not (equal "" platforms))
+      (fuel-scaffold--create-platforms name platforms))
     (when help
          (fuel-scaffold--create-docs name))
     (when tests
@@ -221,6 +228,18 @@ You can configure `fuel-scaffold-developer-name' (set by default to
           (error "Error creating summary file" (car (fuel-eval--retort-error ret))))
         (find-file file)))
 
+(defun fuel-scaffold-platforms (&optional arg)
+  "Creates, if it does not already exist, a platforms file for the current vocabulary."
+  (interactive "P")
+  (let* ((vocab (or (and (not arg ) (fuel-syntax--current-vocab))
+                    (fuel-completion--read-vocab nil)))
+         (platforms (read-string "Platforms: "))
+         (ret (fuel-scaffold--create-platforms vocab platforms))
+         (file (fuel-eval--retort-result ret)))
+        (unless file
+          (error "Error creating platforms file" (car (fuel-eval--retort-error ret))))
+        (find-file file)))
+
 \f
 (provide 'fuel-scaffold)
 ;;; fuel-scaffold.el ends here