add chmod +x and -x function
This commit is contained in:
@@ -894,7 +894,7 @@ do_help() {
|
||||
bw=$((COLS - 4))
|
||||
[ "$bw" -gt 52 ] && bw=52
|
||||
[ "$bw" -lt 36 ] && bw=36
|
||||
bh=42
|
||||
bh=44
|
||||
_help_bx=$(( (COLS - bw) / 2 )); [ "$_help_bx" -lt 1 ] && _help_bx=1
|
||||
_help_by=$(( (ROWS - bh) / 2 )); [ "$_help_by" -lt 1 ] && _help_by=1
|
||||
_help_iw=$((bw - 2))
|
||||
@@ -932,17 +932,19 @@ do_help() {
|
||||
help_row 27 " U open trash directory"
|
||||
help_row 28 " ! drop to shell in CWD"
|
||||
help_row 29 " o open with custom program"
|
||||
help_sep 30
|
||||
help_row 31 " b bookmark current dir"
|
||||
help_row 32 " B open bookmark picker"
|
||||
help_row 33 " c copy path to clipboard"
|
||||
help_row 34 " ~ go to home directory"
|
||||
help_row 35 " \` jump to previous directory"
|
||||
help_sep 36
|
||||
help_row 37 " q quit"
|
||||
help_row 38 " ? this help"
|
||||
help_row 39 ""
|
||||
help_row 40 " press any key to close..."
|
||||
help_row 30 " + chmod +x (make executable)"
|
||||
help_row 31 " - chmod -x (remove executable)"
|
||||
help_sep 32
|
||||
help_row 33 " b bookmark current dir"
|
||||
help_row 34 " B open bookmark picker"
|
||||
help_row 35 " c copy path to clipboard"
|
||||
help_row 36 " ~ go to home directory"
|
||||
help_row 37 " \` jump to previous directory"
|
||||
help_sep 38
|
||||
help_row 39 " q quit"
|
||||
help_row 40 " ? this help"
|
||||
help_row 41 ""
|
||||
help_row 42 " press any key to close..."
|
||||
|
||||
goto "$(( _help_by + bh ))" "$_help_bx"
|
||||
printf '%s+%s+%s' "${BOLD}${CYAN}" "$_help_hl" "${RESET}"
|
||||
@@ -1193,6 +1195,32 @@ do_mkdir() {
|
||||
fi
|
||||
}
|
||||
|
||||
do_chmod_x() {
|
||||
entry=$(get_entry "$SEL")
|
||||
[ -z "$entry" ] && return
|
||||
case "$entry" in */) INFO_MSG="cannot chmod a directory"; NEED_FULL_REDRAW=1; return ;; esac
|
||||
_target=$(joinpath "${entry%@}")
|
||||
if chmod +x "$_target" 2>/dev/null; then
|
||||
INFO_MSG="chmod +x: ${entry}"
|
||||
else
|
||||
INFO_MSG="chmod failed: ${entry}"
|
||||
fi
|
||||
NEED_FULL_REDRAW=1
|
||||
}
|
||||
|
||||
do_chmod_nox() {
|
||||
entry=$(get_entry "$SEL")
|
||||
[ -z "$entry" ] && return
|
||||
case "$entry" in */) INFO_MSG="cannot chmod a directory"; NEED_FULL_REDRAW=1; return ;; esac
|
||||
_target=$(joinpath "${entry%@}")
|
||||
if chmod -x "$_target" 2>/dev/null; then
|
||||
INFO_MSG="chmod -x: ${entry}"
|
||||
else
|
||||
INFO_MSG="chmod failed: ${entry}"
|
||||
fi
|
||||
NEED_FULL_REDRAW=1
|
||||
}
|
||||
|
||||
do_info() {
|
||||
entry=$(get_entry "$SEL")
|
||||
[ -z "$entry" ] && return
|
||||
@@ -1524,7 +1552,8 @@ while true; do
|
||||
T) do_toggle_details ;;
|
||||
P) do_toggle_preview ;;
|
||||
i) do_info ;;
|
||||
'!') do_shell ;;
|
||||
'+') do_chmod_x ;;
|
||||
'-') do_chmod_nox ;;
|
||||
o) do_open_with ;;
|
||||
s) do_sort ;;
|
||||
u) do_trash ;;
|
||||
|
||||
Reference in New Issue
Block a user