├── etc ├── init └── mailru-cloud.sh ├── uninstall.sh ├── README.md ├── LICENSE └── install.sh /etc/init: -------------------------------------------------------------------------------- 1 | SYSTEM_USER="$USER" 2 | HOMEDIR=$(getent passwd ${SYSTEM_USER} | cut -d: -f6) 3 | CLOUD_DIR="Cloud" 4 | DAEMON_DIR=".mailru" 5 | DAEMON_BIN="cloud" 6 | -------------------------------------------------------------------------------- /uninstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | . etc/init 4 | echo "Uninstalling Mail.ru Cloud..."; echo 5 | 6 | # Stop service 7 | sudo service mailru-cloud stop 8 | 9 | # Remove init script and service 10 | sudo update-rc.d -f mailru-cloud remove 11 | sudo rm -f "/etc/default/mailru-cloud" 12 | sudo rm -f "/etc/init.d/mailru-cloud" 13 | 14 | # Remove config 15 | rm -f ${HOMEDIR}/.Mail.Ru_Cloud* 16 | 17 | # Remove daemon and cloud directories 18 | #rm -rf "$HOMEDIR/$CLOUD_DIR" 19 | rm -rf "$HOMEDIR/$DAEMON_DIR" 20 | 21 | echo "Mail.ru Cloud uninstalled succesfully."; echo 22 | exit 0 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | mailru-cloud 2 | ============ 3 | 4 | https://cloud.mail.ru/ 5 | 6 | Консольный клиент для облака mail.ru 7 | 8 | Проверено в Ubuntu и Linux Mint 9 | 10 | Для работы требуются: ```start-stop-daemon```, ```update-rc.d```, ```Xvfb```, ```wget``` 11 | 12 | Установка: ```./install.sh``` 13 | 14 | Удаление: ```./uninstall.sh``` 15 | 16 | Использование: ```service mailru-cloud {start|stop|reload|force-reload|restart|status}``` 17 | 18 | --- 19 | 20 | Enjoy my work? [Help me out](https://yoomoney.ru/to/410019180291197) for a couple of :beers: or a :coffee:! 21 | 22 | [![coffee](https://www.buymeacoffee.com/assets/img/custom_images/black_img.png)](https://yoomoney.ru/to/410019180291197) 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Nikolay Vasilchuk 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | . etc/init 4 | echo "Installing Mail.ru Cloud..."; echo 5 | 6 | EMAIL="" 7 | PASSWORD="" 8 | 9 | # Linux client url 10 | URL="https://desktopcloud.cdnmail.ru/linux/i386/cloud" 11 | if [ `getconf LONG_BIT` = "64" ] ; then 12 | URL="https://desktopcloud.cdnmail.ru/linux/amd64/cloud" 13 | fi 14 | 15 | # Read email 16 | while [ -z "$EMAIL" ]; do 17 | read -p "Email: " EMAIL 18 | done 19 | 20 | # Read password 21 | stty -echo 22 | while [ -z "$PASSWORD" ]; do 23 | read -p "Password: " PASSWORD; echo 24 | done 25 | stty echo 26 | 27 | # Create daemon and cloud directories 28 | mkdir -p "$HOMEDIR/$CLOUD_DIR" 29 | mkdir -p "$HOMEDIR/$DAEMON_DIR" 30 | 31 | # Download cloud client 32 | if [ ! -x "$HOMEDIR/$DAEMON_DIR/$DAEMON_BIN" ]; then 33 | rm -f "$HOMEDIR/$DAEMON_DIR/$DAEMON_BIN" 34 | wget -O "$HOMEDIR/$DAEMON_DIR/$DAEMON_BIN" "$URL" 35 | chmod +x "$HOMEDIR/$DAEMON_DIR/$DAEMON_BIN" 36 | fi 37 | 38 | # Create default config 39 | echo "validfinish=0\nemail=$EMAIL\nfolder=$HOMEDIR/$CLOUD_DIR\n" > "$HOMEDIR/.Mail.Ru_Cloud" 40 | 41 | # First run for create default params 42 | start-stop-daemon -b -o -c ${SYSTEM_USER} -S -u ${SYSTEM_USER} -x "/usr/bin/Xvfb" -- ":43" "-extension" "RANDR" "-extension" "GLX" "-screen" "0" "640x480x8" "-nolisten" "tcp" 43 | sleep 1 44 | export DISPLAY=":43" 45 | start-stop-daemon -b -o -c ${SYSTEM_USER} -S -u ${SYSTEM_USER} -x "$HOMEDIR/$DAEMON_DIR/$DAEMON_BIN" -- "-email" "$EMAIL" "-password" "$PASSWORD" "-acceptLicense" "1" "-folder" "$HOMEDIR/$CLOUD_DIR" 46 | sleep 1 47 | start-stop-daemon -o -c ${SYSTEM_USER} -K -u ${SYSTEM_USER} -x "$HOMEDIR/$DAEMON_DIR/$DAEMON_BIN" 48 | sleep 1 49 | start-stop-daemon -o -c ${SYSTEM_USER} -K -u ${SYSTEM_USER} -x "/usr/bin/Xvfb" 50 | 51 | # Create init script and service 52 | sudo cp "etc/mailru-cloud.sh" "/etc/init.d/mailru-cloud" 53 | sudo chmod 755 "/etc/init.d/mailru-cloud" 54 | sudo bash -c "echo -e \"SYSTEM_USER=$SYSTEM_USER\nHOMEDIR=$HOMEDIR\nDAEMON_DIR=$DAEMON_DIR\nDAEMON_BIN=$DAEMON_BIN\n\" > /etc/default/mailru-cloud" 55 | sudo update-rc.d mailru-cloud defaults 56 | 57 | echo "Mail.ru Cloud installed succesfully."; echo 58 | exit 0 59 | -------------------------------------------------------------------------------- /etc/mailru-cloud.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ### BEGIN INIT INFO 4 | # Provides: mailru-cloud 5 | # Required-Start: $local_fs $remote_fs $network $syslog $named 6 | # Required-Stop: $local_fs $remote_fs $network $syslog $named 7 | # Default-Start: 2 3 4 5 8 | # Default-Stop: 0 1 6 9 | # X-Interactive: false 10 | # Short-Description: mailru-cloud service 11 | ### END INIT INFO 12 | 13 | # Include mailru-cloud defaults if available 14 | test -f /etc/default/mailru-cloud && . /etc/default/mailru-cloud 15 | 16 | LOGFILE="cloud.log" 17 | PIDFILE_CL="cloud.pid" 18 | PIDFILE_FB="xvfb.pid" 19 | DISPLAY=99 20 | 21 | find_free_servernum() { 22 | i=${DISPLAY} 23 | while [ -f /tmp/.X${i}-lock ]; do 24 | i=$(($i + 1)) 25 | done 26 | echo ${i} 27 | } 28 | 29 | start_xvfb() { 30 | if [ -f "$HOMEDIR/$DAEMON_DIR/$PIDFILE_FB" ] ; then 31 | stop_xvfb 32 | fi 33 | DISPLAY=$(find_free_servernum) 34 | start-stop-daemon -b -o -c ${SYSTEM_USER} -S -u ${SYSTEM_USER} -m -p "$HOMEDIR/$DAEMON_DIR/$PIDFILE_FB" -x "/usr/bin/Xvfb" -- ":$DISPLAY" "-extension" "RANDR" "-extension" "GLX" "-screen" "0" "640x480x8" "-nolisten" "tcp" 35 | } 36 | 37 | stop_xvfb() { 38 | start-stop-daemon -o -c ${SYSTEM_USER} -K -u ${SYSTEM_USER} -p "$HOMEDIR/$DAEMON_DIR/$PIDFILE_FB" -R 5 39 | rm -f "$HOMEDIR/$DAEMON_DIR/$PIDFILE_FB" 40 | } 41 | 42 | start() { 43 | echo "Starting cloud..." 44 | if [ -f "$HOMEDIR/$DAEMON_DIR/$PIDFILE_CL" ] ; then 45 | echo "Cloud is already running." 46 | exit 1 47 | fi 48 | if [ -x "$HOMEDIR/$DAEMON_DIR/$DAEMON_BIN" ]; then 49 | start_xvfb 50 | rm -f "$HOMEDIR/$DAEMON_DIR/$LOGFILE" 51 | export DISPLAY=":$DISPLAY" 52 | start-stop-daemon -b -o -c ${SYSTEM_USER} -S -u ${SYSTEM_USER} -m -p "$HOMEDIR/$DAEMON_DIR/$PIDFILE_CL" -x "$HOMEDIR/$DAEMON_DIR/$DAEMON_BIN" -- "-logfile" "$HOMEDIR/$DAEMON_DIR/$LOGFILE" 53 | echo "Cloud started succesfully." 54 | fi 55 | } 56 | 57 | stop() { 58 | echo "Stopping cloud..." 59 | if [ -x "$HOMEDIR/$DAEMON_DIR/$DAEMON_BIN" ]; then 60 | start-stop-daemon -o -c ${SYSTEM_USER} -K -u ${SYSTEM_USER} -p "$HOMEDIR/$DAEMON_DIR/$PIDFILE_CL" -R 5 61 | rm -f "$HOMEDIR/$DAEMON_DIR/$PIDFILE_CL" 62 | stop_xvfb 63 | echo "Cloud stopped succesfully." 64 | fi 65 | } 66 | 67 | status() { 68 | if [ -f "$HOMEDIR/$DAEMON_DIR/$PIDFILE_CL" ] ; then 69 | echo "Cloud is running." 70 | else 71 | echo "Cloud is not running." 72 | fi 73 | } 74 | 75 | case "$1" in 76 | start) 77 | start 78 | ;; 79 | stop) 80 | stop 81 | ;; 82 | restart|reload|force-reload) 83 | stop 84 | start 85 | ;; 86 | status) 87 | status 88 | ;; 89 | *) 90 | echo "Usage: service mailru-cloud {start|stop|reload|force-reload|restart|status}" 91 | exit 1 92 | esac 93 | 94 | exit 0 95 | --------------------------------------------------------------------------------