|
@ -119,7 +119,7 @@ nil." |
|
|
(message (concat "Running " cmd)) |
|
|
(message (concat "Running " cmd)) |
|
|
(compile cmd comint))) |
|
|
(compile cmd comint))) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; DONE |
|
|
(defun vlo/packExport (username job &optional key) |
|
|
(defun vlo/packExport (username job &optional key) |
|
|
"Run the packExport command with sfdx USERNAME or alias using the JOB file. |
|
|
"Run the packExport command with sfdx USERNAME or alias using the JOB file. |
|
|
|
|
|
|
|
@ -146,6 +146,7 @@ packExport using job.yaml provided (i.e. export all)." |
|
|
job |
|
|
job |
|
|
key))) |
|
|
key))) |
|
|
|
|
|
|
|
|
|
|
|
;; DONE |
|
|
(defun vlo/packDeploy (username job &optional key) |
|
|
(defun vlo/packDeploy (username job &optional key) |
|
|
"Run the packDeploy command with sfdx USERNAME or alias using the JOB file. |
|
|
"Run the packDeploy command with sfdx USERNAME or alias using the JOB file. |
|
|
|
|
|
|
|
@ -173,35 +174,45 @@ packDeploy using job.yaml provided (i.e. deploy all)." |
|
|
key))) |
|
|
key))) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun vlo/packSearch (username job) |
|
|
|
|
|
"Run the packGetAllAvailableExports command with USERNAME and JOB file." |
|
|
|
|
|
|
|
|
(defun vlo/prompt-tabulated-list (&optional result) |
|
|
|
|
|
"A wrapper function to `vlocitemacs' from async call which passes a RESULT." |
|
|
|
|
|
(vlocitemacs)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; FIXME :: This isn't triggering `vlocitemacs' as it should after building the list. |
|
|
|
|
|
(defun vlo/get-available-exports (username job) |
|
|
|
|
|
"Run the packGetAllAvailableExports command with USERNAME and JOB file. |
|
|
|
|
|
|
|
|
|
|
|
Returns a list into VlocityBuildLog.yaml. Upon completing the async process |
|
|
|
|
|
`vlocitemacs' is run." |
|
|
(if (and (vlo/in-vlocity-project) |
|
|
(if (and (vlo/in-vlocity-project) |
|
|
(file-exists-p (concat (vlo/project-path) job))) |
|
|
(file-exists-p (concat (vlo/project-path) job))) |
|
|
(vlo/exec-process |
|
|
|
|
|
(format "cd %s; vlocity packGetAllAvailableExports -sfdx.username %s -job %s -type VlocityUITemplate" |
|
|
|
|
|
(vlo/project-path) |
|
|
|
|
|
username |
|
|
|
|
|
job) "vlocity:exports" t) |
|
|
|
|
|
(message "ERROR Retrieving List:: project: %s, user: %s, job: %s" |
|
|
|
|
|
(vlo/project-path) |
|
|
|
|
|
username |
|
|
|
|
|
job))) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; this following 'if' is essentially a cache |
|
|
|
|
|
(if (not (string= (shell-command-to-string (format "cat %sVlocityBuildLog.yaml | grep 'manifest'" (vlo/project-path))) "")) |
|
|
|
|
|
(vlocitemacs) |
|
|
|
|
|
(progn |
|
|
|
|
|
(message "Generating list...") |
|
|
|
|
|
(async-start-process "vlocity:getlist" "sh" (lambda (res) (vlocitemacs)) "-c" (format "cd %s; vlocity packGetAllAvailableExports -sfdx.username %s -job %s -type VlocityUITemplate; exit" (vlo/project-path) username job)))) |
|
|
|
|
|
(message "Cannot get available exports!"))) |
|
|
|
|
|
|
|
|
(defun vlo/createDatapack () |
|
|
(defun vlo/createDatapack () |
|
|
"Description." |
|
|
"Description." |
|
|
(interactive) |
|
|
(interactive) |
|
|
(message "TODO :: Creating...")) |
|
|
(message "TODO :: Creating...")) |
|
|
|
|
|
|
|
|
|
|
|
;; DONE |
|
|
(defun vlo/search () |
|
|
(defun vlo/search () |
|
|
"Description." |
|
|
"Description." |
|
|
(interactive) |
|
|
(interactive) |
|
|
(message "TODO :: Searching...")) |
|
|
|
|
|
|
|
|
(vlo/get-available-exports (vlo/get-project-user) (vlo/get-jobfile-name))) |
|
|
|
|
|
|
|
|
;; DONE |
|
|
;; DONE |
|
|
(defun vlo/exportThisAction () |
|
|
(defun vlo/exportThisAction () |
|
|
"Destructively retrieve this component." |
|
|
"Destructively retrieve this component." |
|
|
(interactive) |
|
|
(interactive) |
|
|
(let ((key (vlo/get-deployment-key))) |
|
|
(let ((key (vlo/get-deployment-key))) |
|
|
(if (yes-or-no-p "Retrieve \"%s\"? (THIS WILL OVERWRITE LOCAL CHANGES!) ") |
|
|
|
|
|
|
|
|
(if (yes-or-no-p (format "Retrieve \"%s\"? (THIS WILL OVERWRITE LOCAL CHANGES!) " key)) |
|
|
(progn |
|
|
(progn |
|
|
(message "Retrieving \"%s\"..." key) |
|
|
(message "Retrieving \"%s\"..." key) |
|
|
(vlo/packExport (vlo/get-project-user) (vlo/get-jobfile-name) key)) |
|
|
(vlo/packExport (vlo/get-project-user) (vlo/get-jobfile-name) key)) |
|
@ -238,6 +249,55 @@ packDeploy using job.yaml provided (i.e. deploy all)." |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; TODO : could check if file is installed locally and then either prompt to overwrite or goto item |
|
|
|
|
|
(defun vlo/get-item-at-point (&optional arg) |
|
|
|
|
|
"Get the DataPack under cursor ARG." |
|
|
|
|
|
(interactive "P") |
|
|
|
|
|
(let ((item (aref (tabulated-list-get-entry) 0))) |
|
|
|
|
|
(message "Item Selected: %s and arg %s" item arg) |
|
|
|
|
|
(vlo/packExport (vlo/get-project-user) (vlo/get-jobfile-name) (concat "VlocityUITemplate/" item)))) |
|
|
|
|
|
|
|
|
|
|
|
;; DONE |
|
|
|
|
|
(defvar vlocitemacs-mode-map |
|
|
|
|
|
(let ((map (make-sparse-keymap))) |
|
|
|
|
|
(define-key map (kbd "RET") 'vlo/get-item-at-point) |
|
|
|
|
|
map) |
|
|
|
|
|
"Keymap for `vlocitemacs-mode'.") |
|
|
|
|
|
|
|
|
|
|
|
;; DONE |
|
|
|
|
|
(define-derived-mode vlocitemacs-mode tabulated-list-mode "VlocitEmacs" |
|
|
|
|
|
"A custom mode for interacting with the Vlocity Build Tool CLI." |
|
|
|
|
|
|
|
|
|
|
|
(let ( |
|
|
|
|
|
(columns [("Choose DataPack" 100)]) |
|
|
|
|
|
(rows (mapcar (lambda(x) `(nil [,x])) |
|
|
|
|
|
(split-string (shell-command-to-string (format "cat %sVlocityBuildLog.yaml | grep ' - ' | sed 's/ - VlocityUITemplate\\///'" (vlo/project-path))))))) |
|
|
|
|
|
(buffer-disable-undo) |
|
|
|
|
|
(kill-all-local-variables) |
|
|
|
|
|
(setq truncate-lines t) |
|
|
|
|
|
(setq mode-name "VlocitEmacs") |
|
|
|
|
|
(setq major-mode 'vlocitemacs-mode) |
|
|
|
|
|
(setq tabulated-list-format columns) |
|
|
|
|
|
(setq tabulated-list-entries rows) |
|
|
|
|
|
(use-local-map vlocitemacs-mode-map) |
|
|
|
|
|
(tabulated-list-init-header) |
|
|
|
|
|
(tabulated-list-print) |
|
|
|
|
|
(run-mode-hooks 'vlocitemacs-mode-hook))) |
|
|
|
|
|
|
|
|
|
|
|
;; DONE |
|
|
|
|
|
(defun vlocitemacs () |
|
|
|
|
|
"Invoke the VlocitEmacs buffer." |
|
|
|
|
|
(interactive) |
|
|
|
|
|
(switch-to-buffer "*vlocitemacs*") |
|
|
|
|
|
(vlocitemacs-mode)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; DONE |
|
|
(defun vlo/transient-action () |
|
|
(defun vlo/transient-action () |
|
|
"Dynamically choose which transient to show based on if currently in a project." |
|
|
"Dynamically choose which transient to show based on if currently in a project." |
|
|
(interactive) |
|
|
(interactive) |
|
@ -256,12 +316,12 @@ packDeploy using job.yaml provided (i.e. deploy all)." |
|
|
("c" "Create a new datapack (dynamically)" vlo/createDatapack)] |
|
|
("c" "Create a new datapack (dynamically)" vlo/createDatapack)] |
|
|
["Retrieve" |
|
|
["Retrieve" |
|
|
("s" "Search for new datapack" vlo/search) |
|
|
("s" "Search for new datapack" vlo/search) |
|
|
("r" "refresh this datapack (destructive)" vlo/exportThisAction) |
|
|
|
|
|
("R" "refresh all local datapacks (destructive)" vlo/exportAllAction) |
|
|
|
|
|
|
|
|
("r" "Refresh this datapack (destructive)" vlo/exportThisAction) |
|
|
|
|
|
("R" "Refresh all local datapacks (destructive)" vlo/exportAllAction) |
|
|
] |
|
|
] |
|
|
["Deploy" |
|
|
["Deploy" |
|
|
("d" "deploy this datapack" vlo/deployThisAction) |
|
|
|
|
|
("D" "deploy all local datapacks" vlo/deployAllAction) |
|
|
|
|
|
|
|
|
("d" "Deploy this datapack" vlo/deployThisAction) |
|
|
|
|
|
("D" "Deploy all local datapacks" vlo/deployAllAction) |
|
|
]) |
|
|
]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|