Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # chkconfig: 2345 85 15
- # description: Start autodl-irssi and rtorrent
- ### BEGIN INIT INFO
- # Provides: irssi rtorrent init script
- # Required-Start: $local_fs $network $syslog
- # Required-Stop: $local_fs $syslog
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Start autodl-irssi and rtorrent
- # Description: Start autodl-irssi and rtorrent
- ### END INIT INFO
- # Exemples:
- # chmod +x /etc/init.d/tmux_rtorrent
- # update-rc.d tmux_rtorrent defaults
- # update-rc.d -f tmux_rtorrent remove
- # /etc/init.d/tmux_rtorrent start
- # sudo -H -u USER tmux -2 attach-session -t SESSIONNAME
- # sudo -H -u USER tmux send-keys -t SESSIONNAME:1 6 Down C-d
- USER=username
- SESSIONNAME=rt_$USER
- resetPath() {
- PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH"
- }
- resetPath
- isStarted() {
- sudo -H -u $USER tmux has-session -t $SESSIONNAME > /dev/null 2>&1 && return 0
- return 1
- }
- startIt() {
- isStarted && return 0
- local START_IRSSI=n
- local START_RTORRENT=n
- which irssi > /dev/null 2>&1 && START_IRSSI=y
- which rtorrent > /dev/null 2>&1 && START_RTORRENT=y
- case $START_IRSSI$START_RTORRENT in
- yy)
- sudo -H -u $USER tmux new-session -d -s $SESSIONNAME
- sudo -H -u $USER tmux new-window -t $SESSIONNAME:1 -n rtorrent rtorrent
- sudo -H -u $USER tmux new-window -t $SESSIONNAME:2 -n irssi irssi
- sudo -H -u $USER tmux send-keys -t $SESSIONNAME:0 exit C-m
- ;;
- ny)
- sudo -H -u $USER tmux new-session -d -s $SESSIONNAME
- sudo -H -u $USER tmux new-window -t $SESSIONNAME:1 -n rtorrent rtorrent
- sudo -H -u $USER tmux send-keys -t $SESSIONNAME:0 exit C-m
- ;;
- yn)
- sudo -H -u $USER tmux new-session -d -s $SESSIONNAME
- sudo -H -u $USER tmux new-window -t $SESSIONNAME:2 -n irssi irssi
- sudo -H -u $USER tmux send-keys -t $SESSIONNAME:0 exit C-m
- ;;
- nn)
- ;;
- esac
- return 0
- }
- stopIt() {
- isStarted || return 0
- sudo -H -u $USER tmux send-keys -t $SESSIONNAME:1 C-q
- sudo -H -u $USER tmux send-keys -t $SESSIONNAME:2 /quit C-m
- for i in 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4; do
- isStarted || break
- sleep 1
- done
- # If it's still not stopped, kill the whole tmux session
- if isStarted; then
- echo -n "Couldn't stop it. Killing tmux session..."
- sudo -H -u $USER tmux send-keys -t $SESSIONNAME:1 C-q
- sudo -H -u $USER tmux send-keys -t $SESSIONNAME:2 /quit C-m
- sudo -H -u $USER tmux send-keys -t $SESSIONNAME:0 exit C-m
- sleep 2
- sudo -H -u $USER tmux kill-session -t $SESSIONNAME
- echo "Done."
- fi
- return 0
- }
- v_restartIt() {
- v_stopIt
- v_startIt
- }
- v_showStatus() {
- if isStarted; then
- echo "$SESSIONNAME is running."
- else
- echo "$SESSIONNAME is stopped."
- fi
- }
- . /lib/lsb/init-functions
- v_startIt() {
- log_begin_msg "Starting $SESSIONNAME..."
- startIt
- log_end_msg $?
- }
- v_stopIt() {
- log_begin_msg "Stopping $SESSIONNAME..."
- stopIt
- log_end_msg $?
- }
- resetPath # Some include files may have reset it
- LOCKFILE=
- updateLock() {
- [ -z "$LOCKFILE" ] && return
- if isStarted; then
- touch $LOCKFILE
- else
- rm -f $LOCKFILE
- fi
- }
- RETVAL=0
- case $1 in
- start)
- v_startIt
- ;;
- stop)
- v_stopIt
- ;;
- force-reload|restart)
- v_restartIt
- ;;
- try-restart)
- isStarted && v_restartIt
- ;;
- status)
- v_showStatus
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|try-restart|force-reload|status}"
- RETVAL=1
- ;;
- esac
- updateLock
- exit $RETVAL
Advertisement
Add Comment
Please, Sign In to add comment