File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,11 +11,13 @@ laptop_require "laptop_path_print"
1111# laptop_file_ensure_template <template> <target>
1212# Options:
1313# --force Force to overwrite file if present
14+ # --sudo Run mkdir/cp under sudo (via sh -c so the whole pipeline is elevated)
1415#
1516laptop_file_ensure_template () {
1617 local template=" $1 "
1718 local target=" $2 "
1819 local force=0
20+ local use_sudo=0
1921 local positional_args=()
2022
2123 while [[ $# -gt 0 ]]; do
@@ -24,6 +26,10 @@ laptop_file_ensure_template() {
2426 force=1
2527 shift
2628 ;;
29+ --sudo)
30+ use_sudo=1
31+ shift
32+ ;;
2733 -* )
2834 echo " Unknown option $1 "
2935 exit 1
@@ -48,9 +54,10 @@ laptop_file_ensure_template() {
4854 if [ " $force " -eq 0 ] && [ -f " $target " ]; then
4955 laptop_step_status " pass"
5056 else
51- laptop_step_eval " \
52- mkdir -p $( quote " $( dirname " $target " ) " ) && \
53- cp -f $( quote " $template " ) $( quote " $target " ) \
54- "
57+ local sudo
58+ if [ " $use_sudo " -eq 1 ]; then
59+ sudo=" sudo"
60+ fi
61+ laptop_step_eval " $sudo mkdir -p $( quote " $( dirname " $target " ) " ) && $sudo cp -f $( quote " $template " ) $( quote " $target " ) "
5562 fi
5663}
You can’t perform that action at this time.
0 commit comments