shell bypass 403
#!/usr/bin/env bash
source "$rvm_scripts_path/base"
# Add rvm variables on the beginning of crontab
__rvm_cron_setup()
{
{
echo "#sm start rvm"
__rvm_env_print --cron
echo "#sm end rvm"
__sm.cron.show | __sm.filter.remove.group "^#sm start rvm$" "^#sm end rvm$"
} | crontab -
}
__rvm_cron_remove()
{
__sm.cron.show | __sm.filter.remove.group "^#sm start rvm$" "^#sm end rvm$" | crontab -
}
__rvm_cron_command()
{
\typeset v schedule
schedule="$1"
shift || {
rvm_error "Schedule not given, example: rvm cron command \"@daily\" rake calculate:stats"
rvm_info "Refer to \`man 5 crontab\` for format of the scheduling definition."
exit 1
}
[[ -n "$1" ]] || {
rvm_error "Command not given, example: rvm cron command \"@daily\" rake calculate:stats"
exit 2
}
{
__sm.cron.show
printf "%b" "${schedule} $(__rvm_which rvm) in \"$PWD\" do"
for v in "$@"
do printf "%b" " \"$v\""
done
printf "\n"
} | crontab -
}
__sm.cron.show()
{
EDITOR="\command \cat" crontab -e 2>/dev/null
}
__sm.filter.remove.group()
{
__rvm_awk 'BEGIN{in_group=0} /'"$1"'/ {in_group=1} in_group==0 {print} /'"$2"'/ {in_group=0}'
}
action="${1:-}"
shift
case "$action" in
setup|remove|command)
__rvm_cron_$action "$@"
;;
help)
rvm_help cron
;;
*)
rvm_error_help "Unknown subcommand '$action'" cron
exit 1
;;
esac