taupinfada
Cadet
- Joined
 - May 12, 2013
 
- Messages
 - 3
 
I create a script to install BtSync in the Plugging Jail.
So If you want use your Freenas as a dropbox you can use this one.
Of course, I am open to all suggestions ...
	
		
			
		
		
	
			
			So If you want use your Freenas as a dropbox you can use this one.
Of course, I am open to all suggestions ...
Code:
#!/bin/sh
cd /tmp
echo "Souhaitez-vous installer Bittorrent Sync (o/n)? [n] : "
read install_btsync
if [ $install_btsync = "o" ]; then
	echo "Initialisation de l'utilisateur btsync"
	if [ `more /etc/passwd | grep btsync | wc -l` -gt 0 ]; then
		echo "L'utilisateur btsync existe déjà"
	else
		echo "Création de l'utilisateur btsync"
		pw useradd btsync -m -c "Utilisateur Bittorrent Sync" -s /bin/sh -w yes
	fi
	echo "Initialisation des répertoire"
	home_dir="/home/btsync"
	config_dir="$home_dir/.config"
	config_btsync_dir="$config_dir/btsync"
	if [ ! -e $config_dir ]; then
		mkdir $config_dir
	fi
	if [ ! -e $config_btsync_dir ]; then
		mkdir $config_btsync_dir
	fi
	chown -R btsync $home_dir
	chmod -R 744 $home_dir
	if [ ! -e btsync_freebsd_x64-1.0.128.tar.gz ]; then
		echo "Téléchargement de Bittorrent Sync."
		wget "http://syncapp.bittorrent.com/1.0.128/btsync_freebsd_x64-1.0.128.tar.gz"
	fi
	if [ -e btsync ]; then
		rm btsync
	fi
	echo "Extraction de Bittorrent Sync."
	tar xvfz btsync_freebsd_x64-1.0.128.tar.gz
	echo "Copie de Bittorrent Sync."
	cp btsync /usr/local/bin/btsync
	chmod 755 /usr/local/bin/btsync
	echo "Initialisation du daemon"
	cat > "/etc/rc.d/btsync" <<EOF
#!/bin/sh
#
# PROVIDE: btsync
# REQUIRE: NETWORKING SERVERS DAEMON ldconfig resolv
# btsync service
# Take from <https://gist.github.com/MendelGusmao/5398362>
# Replace with UNIX users you want to run BTSync clients for
BTSYNC_USERS="btsync"
DAEMON=/usr/bin/btsync
name="btsync"
rcvar="btsync_enable"
command="/usr/bin/\${name}"
start() {
	echo "Starting btsync..."
	for btsuser in \$BTSYNC_USERS; do
		echo " - for \$btsuser"
		HOMEDIR=\`getent passwd \$btsuser | cut -d: -f6\`
		if [ -d \$HOMEDIR/.config ]; then
			su -l \$btsuser -c "/usr/local/bin/btsync --config \$HOMEDIR/.config/btsync/config.json"
		fi
	done
}
stop() {
	echo "Stopping btsync..."
	for btsuser in \$BTSYNC_USERS; do
		HOMEDIR=\`getent passwd \$btsuser | cut -d: -f6\`
		if [ -d \$HOMEDIR/.config ]; then
			dbpid=\`pgrep -u $btsuser btsync\`
			if [ -z "\$dbpid" ]; then
				echo "btsync for USER \$btsuser: not running."
			else
				echo "Stopping btsync for USER \$btsuser: running (pid \$dbpid)"
				kill \$dbpid
				until [ -z "\$dbpid" ]
				do
					dbpid=\`pgrep -u \$btsuser btsync\`
					echo -n "."
					sleep 1
				done
				echo ""
			fi
		fi
	done
}
status() {
	for btsuser in \$BTSYNC_USERS; do
		dbpid=\`pgrep -u $btsuser btsync\`
		if [ -z "\$dbpid" ]; then
			echo "btsync for USER \$btsuser: not running."
		else
			echo "btsync for USER \$btsuser: running (pid \$dbpid)"
		fi
	done
}
case "\$1" in
start)
start
;;
stop)
stop
;;
restart|reload|force-reload)
stop
start
;;
status)
status
;;
*)
echo "Usage: /etc/rc.d/btsync {start|stop|reload|force-reload|restart|status}"
exit 1
esac
exit 0
EOF
	chmod 755 /etc/rc.d/btsync
	
	if [ `more /etc/rc.conf | grep btsync | wc -l` -lt 1 ]; then
		echo "btsync_enable=\"YES\"" >> /etc/rc.conf
	fi
	
	echo "Configuration de l'interface web"
	echo "Utilisateur de connexion à l'interface web : "
	read user
	echo "Mot de passe de connexion à l'interface web : "
	read pwd
	cat > "$config_btsync_dir/config.json" <<EOF
{ 
  "device_name": "Freenas",
  "listening_port" : 0,                       // 0 - randomize port
  
/* storage_path dir contains auxilliary app files
   if no storage_path field: .sync dir created in the directory 
   where binary is located.
   otherwise user-defined directory will be used 
*/
  "storage_path" : "/home/btsync/.config/btsync",
// uncomment next line if you want to set location of pid file
// "pid_file" : "/var/run/syncapp/syncapp.pid",
  "check_for_updates" : true, 
  "use_upnp" : true,                              // use UPnP for port mapping
/* limits in kB/s
   0 - no limit
*/
  "download_limit" : 0,                       
  "upload_limit" : 0, 
/* remove "listen" field to disable WebUI
   remove "login" and "password" fields to disable credentials check
*/
  "webui" :
  {
    "listen" : "0.0.0.0:8888",
    "login" : "$user",
    "password" : "$pwd"
  }
}
EOF
	chown btsync $config_btsync_dir/config.json
	chmod 744 $config_btsync_dir/config.json
	echo "Lancement de BtSync :"
	/etc/rc.d/btsync start
fi