Advertisement
Guest User

Lithiumc

a guest
Aug 13th, 2011
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.64 KB | None | 0 0
  1. #!/bin/bash
  2. echo
  3. echo
  4. echo " ******* SABnzbd, SickBeard, and CouchPotato *******"
  5. echo " ******* for unRaid 5 *******"
  6. echo " ~dpc"
  7. echo " v01"
  8. echo
  9. echo
  10. echo "-- Please enter the location where you want to download your Prerequisites to: --"
  11. echo "-- (I will be using /boot/packages_global ) --"
  12. echo "-- NEEDS to be on /boot - so like /boot/packages --"
  13. echo "-- Do NOT add a slash at the end of the path --"
  14. echo
  15. read packagedir
  16. echo
  17. mkdir $packagedir
  18. cd $packagedir
  19. echo "Downloading Prerequisites --"
  20. wget -nv -N http://slackware.cs.utah.edu/pub/slackware/slackware-13.1/slackware/ap/nano-2.2.4-i486-1.txz
  21. wget -nv -N http://slackware.cs.utah.edu/pub/slackware/slackware-13.1/slackware/d/python-2.6.4-i486-1.txz
  22. wget -nv -N http://connie.slackware.com/~alien/slackbuilds/python-cheetah/pkg/13.0/python-cheetah-2.4.2.1-i486-1alien.tgz
  23. wget -nv -N http://connie.slackware.com/~alien/slackbuilds/python-yenc/pkg/13.0/python-yenc-0.3-i486-1alien.tgz
  24. wget -nv -N http://slackware.cs.utah.edu/pub/slackware/slackware-13.1/slackware/ap/sqlite-3.6.23.1-i486-1.txz
  25. wget -nv -N http://connie.slackware.com/~alien/slackbuilds/unrar/pkg/13.1/unrar-3.9.10-i486-2alien.tgz
  26. wget -nv -N http://slackware.cs.utah.edu/pub/slackware/slackware-12.2/slackware/a/infozip-5.52-i486-2.tgz
  27. wget -nv -N http://slackware.cs.utah.edu/pub/slackware/slackware-13.1/slackware/n/openssl-0.9.8n-i486-1.txz
  28. wget -nv -N http://repository.slacky.eu/slackware-13.1/system/pyopenssl/0.10/pyopenssl-0.10-i486-2sl.txz
  29. wget -nv -N http://connie.slackware.com/~alien/slackbuilds/par2cmdline/pkg/13.0/par2cmdline-0.4-i486-1alien.tgz
  30. wget -nv -N http://unraid-scripts.googlecode.com/files/par2cmdline-0.4-tbb-20090203-lin32.tar.gz
  31. wget -nv -N http://unraid-powercontrol.googlecode.com/files/powerdown-1.02-noarch-unRAID.tgz
  32. echo "Downloaded Prerequisites --"
  33. echo
  34. echo " -------Listing of /mnt/--------"
  35. echo
  36. ls /mnt
  37. echo
  38. echo "-- Please enter the drive/volume you want to install your custom packages on: --"
  39. echo
  40. read customvolume
  41. echo
  42. echo "-- Please enter the folder on "$customvolume" where you want to install on: --"
  43. echo "-- (some folks like to use: _custom)"
  44. echo
  45. read customdir
  46. echo
  47. echo "-- Creating locations for custom package installations --"
  48. echo
  49. mkdir /mnt/$customvolume/$customdir
  50. #Define the architecture of the box
  51. arch=`uname -m`
  52. ip=($(ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'))
  53. echo " ******* Architecture of Machine is" $arch " *******"
  54. echo " Machine IP: $ip"
  55. echo " ^^^IP will be used for package install^^^"
  56. echo
  57. #Pull latest version number and assign to variable and then display it
  58. stable=($(wget -q -O - http://sabnzbdplus.sourceforge.net/version/latest | awk '/0/{gsub(/\015/,"");print}'))
  59. beta=($(wget -q -O - http://sabnzbdplus.sourceforge.net/version/latest | awk '/2/{gsub(/\015/,"");print}'))
  60. echo " Latest SABnzbd Stable version is: $stable"
  61. echo " Latest SABnzbd Beta version is: $beta"
  62. #Menu
  63. echo ""
  64. echo " Which Version do you wish to Install?"
  65. echo " ----- ------- -- --- ---- -- --------"
  66. echo " SickBeard and CouchPotato will also Install"
  67. echo " also. . . Nano editor :)"
  68. echo
  69. echo
  70. echo "[a] Install SABnzbd 0.6.0RC2 (tested good)"
  71. echo "[b] Install latest STABLE SABnzbd $stable"
  72. echo "[c] Install latest BETA SABnzbd $beta"
  73. echo "[d] Exit"
  74. echo
  75. #Reads the input user puts in assigns to "option". the -n 1 tells it to read the first character inputted and proceed (without waiting for enter press)
  76. read -n 1 option
  77. echo
  78. cd /mnt/$customvolume/$customdir
  79. #Acts on what user entered
  80. case "$option" in
  81. "a")
  82. echo
  83. echo "*******Selected Option A: SABnzbd 0.6.0RC2 (tested good)*******"
  84. echo
  85. echo "Downloading SABnzbd 0.6.0RC2"
  86. wget -nv http://downloads.sourceforge.net/project/sabnzbdplus/sabnzbdplus-beta/sabnzbd-0.6.0RC2/SABnzbd-0.6.0RC2-src.tar.gz
  87. ;;
  88.  
  89. "b")
  90. echo
  91. echo "*******Selected Option B: Latest STABLE SABnzbd $stable*******"
  92. echo
  93. echo "Downloading latest STABLE SABnzbd $stable"
  94. wget -nv http://downloads.sourceforge.net/project/sabnzbdplus/sabnzbdplus/sabnzbd-${stable}/SABnzbd-${stable}-src.tar.gz
  95. ;;
  96.  
  97. "c")
  98. echo
  99. echo "*******Selected Option C: Latest BETA SABnzbd $beta*******"
  100. echo
  101. echo "Downloading latest BETA SABnzbd ($beta)"
  102. wget -nv http://downloads.sourceforge.net/project/sabnzbdplus/sabnzbdplus-beta/sabnzbd-${beta}/SABnzbd-${beta}-src.tar.gz
  103. ;;
  104. "d")
  105. echo
  106. echo "Exiting"
  107. exit
  108. ;;
  109. * )
  110. echo
  111. echo "Wrong selection nothing selected"
  112. echo "Exiting"
  113. exit
  114. ;;
  115. esac
  116. #Continues with script
  117. echo "******* 2. Installing SABnzbd *******"
  118. cd /mnt/$customvolume/$customdir/
  119. sablogdir=/var/log/sabnzbd
  120. echo "-- Port on which SABnzbd will run on (must be higher than 1024), e.g. 8081 --"
  121. read sabport
  122. echo "-- Extracting SABnzbd archive --"
  123. tar xzf SABnzbd*
  124. rm /mnt/$customvolume/$customdir/SABnzbd*.tar.gz
  125. echo "-- Installing SABnzbd --"
  126. cd /mnt/$customvolume/$customdir/SABnzbd*
  127. # Creating .ini for sabnzbd. Notice the change directory. echo "command" >> file doesn't seem to support creating NEW file in locations with asterisks.
  128. echo "[misc]" >> sabnzbd.ini
  129. echo "log_dir = $sablogdir" >> /mnt/$customvolume/$customdir/SABnzbd*/sabnzbd.ini
  130. echo "port = $sabport" >> /mnt/$customvolume/$customdir/SABnzbd*/sabnzbd.ini
  131. echo "host = $ip" >> /mnt/$customvolume/$customdir/SABnzbd*/sabnzbd.ini
  132. echo "-- Done - SABnzbd is Installed --"
  133. echo
  134. echo "******* 3. Installing SickBeard *******"
  135. mkdir /mnt/$customvolume/$customdir/sickbeard/
  136. cd /mnt/$customvolume/$customdir/sickbeard/
  137. echo "-- Downloading SickBeard --"
  138. wget -q --no-check-certificate "http://github.com/midgetspy/Sick-Beard/tarball/master"
  139. echo "-- Extracting SickBeard archive --"
  140. tar xzf midgetspy*
  141. rm midgetspy*.tar.gz
  142. echo "-- Installing SickBeard --"
  143. sickbeardlogdir=/var/log/sickbeard
  144. echo "-- Port on which SickBeard will run on (must be higher than 1024), e.g. 8082 --"
  145. read sickbeardport
  146. cd /mnt/$customvolume/$customdir/sickbeard/midgetspy*
  147. echo "[General]" >> config.ini
  148. echo "web_port = $sickbeardport" >> /mnt/$customvolume/$customdir/sickbeard/midgetspy*/config.ini
  149. echo "web_host = $ip" >> /mnt/$customvolume/$customdir/sickbeard/midgetspy*/config.ini
  150. echo "log_dir = $sickbeardlogdir" >> /mnt/$customvolume/$customdir/sickbeard/midgetspy*/config.ini
  151. echo "-- Done - SickBeard is Installed --"
  152. echo
  153. echo "******* 4. Installing CouchPotato *******"
  154. mkdir /mnt/$customvolume/$customdir/couchpotato
  155. cd /mnt/$customvolume/$customdir/couchpotato
  156. echo "-- Downloading CouchPotato --"
  157. wget -q --no-check-certificate "http://github.com/RuudBurger/CouchPotato/tarball/master"
  158. echo "-- Extracting CouchPotato archive --"
  159. tar xzf RuudBurger*
  160. rm RuudBurger*.tar.gz
  161. echo "-- Installing CouchPotato --"
  162. echo "-- Port on which CouchPotato will run on (must be higher than 1024), e.g. 8083 --"
  163. read couchpotatoport
  164. cd /mnt/$customvolume/$customdir/couchpotato/RuudBurger*
  165. echo "[global]" >> config.ini
  166. echo "port = $couchpotatoport" >> /mnt/$customvolume/$customdir/couchpotato/RuudBurger*/config.ini
  167. echo "host = $ip" >> /mnt/$customvolume/$customdir/couchpotato/RuudBurger*/config.ini
  168. echo "-- Done - CouchPotato is Installed --"
  169. echo
  170. echo "******* 5. Creating /etc/rc.d Files *******"
  171. mkdir /etc/rc.d/unraid.d
  172. #Creating rc.d entries for sabnzbd
  173. cat <<-EOF > /etc/rc.d/unraid.d/rc.unraid_sabnzbd
  174. case \$1 in
  175. start)
  176. if test -e /etc/rc.d/unraid.d/rc.unraid_sabnzbd -a \$(ps auxwww|grep SABnzbd.py|grep -v grep|wc -l) -lt 1; then
  177. if [ -d /mnt/$customvolume/$customdir/SABnzbd* ]; then
  178. cd /mnt/$customvolume/$customdir/SABnzbd*
  179. LOG_DIR=(\$(grep ^log_dir /mnt/$customvolume/$customdir/SABnzbd*/sabnzbd.ini | awk '{print \$3}'))
  180. mkdir -p \$LOG_DIR
  181. chown -R nobody:users . \$LOG_DIR
  182. usermod -s /bin/bash nobody > /dev/null 2>&1
  183. su nobody -c "python SABnzbd.py -d -f /mnt/$customvolume/$customdir/SABnzbd*/sabnzbd.ini > /dev/null 2>&1"
  184. echo SABnzbd started.
  185. else
  186. echo SABnzbd could not be started because the installation directory, /mnt/$customvolume/$customdir/SABnzbd*/, could not be found.
  187. echo If SABnzbd is installed on the unRAID array and the array is stopped, run \"/etc/rc.d/unraid.d/rc.unraid_sabnzbd start\" to start SABnzbd once the array is started.
  188. fi
  189. else
  190. echo SABnzbd is already started.
  191. fi
  192. ;;
  193. stop)
  194. if test -e /etc/rc.d/unraid.d/rc.unraid_sabnzbd -a \$(ps auxwww|grep SABnzbd.py|grep -v grep|wc -l) -gt 0; then
  195. kill \$(ps auxwww|grep SABnzbd.py|grep -v grep|awk '{ print \$2 }')
  196. sleep 4
  197. echo "SABnzbd stopped."
  198. else
  199. echo SABnzbd is already stopped.
  200. fi
  201. ;;
  202. version)
  203. cd /mnt/$customvolume/$customdir/SABnzbd*
  204. python SABnzbd.py --version | grep SABnzbd.py-
  205. ;;
  206. esac
  207. EOF
  208. chmod 755 /etc/rc.d/unraid.d/rc.unraid_sabnzbd
  209. echo "-- Created /etc/rc.d/unraid.d/rc.unraid_sabnzbd --"
  210. #Creating rc.d entries for sickbeard
  211. cat <<-EOF > /etc/rc.d/unraid.d/rc.unraid_sickbeard
  212. case \$1 in
  213. start)
  214. if test -e /etc/rc.d/unraid.d/rc.unraid_sickbeard -a \$(ps auxwww|grep SickBeard.py|grep -v grep|wc -l) -lt 1; then
  215. if [ -d /mnt/$customvolume/$customdir/sickbeard/midgetspy* ]; then
  216. cd /mnt/$customvolume/$customdir/sickbeard/midgetspy*
  217. LOG_DIR=(\$(grep ^log_dir /mnt/$customvolume/$customdir/sickbeard/midgetspy*/config.ini | awk '{print \$3}'))
  218. mkdir -p \$LOG_DIR
  219. chown -R nobody:users . \$LOG_DIR
  220. usermod -s /bin/bash nobody > /dev/null 2>&1
  221. su nobody -c "python SickBeard.py --daemon > /dev/null 2>&1"
  222. echo Sick Beard started.
  223. else
  224. echo Sick Beard could not be started because the installation directory, /mnt/$customvolume/$customdir/sickbeard/midgetspy*, could not be found.
  225. echo If Sick Beard is installed to the unRAID array and the unRAID array is stopped, run \"/etc/rc.d/unraid.d/rc.unraid_sickbeard start\" to start Sick Beard once the unRAID array is started.
  226. fi
  227. else
  228. echo Sick Beard is already started.
  229. fi
  230. ;;
  231. stop)
  232. if test -e /etc/rc.d/unraid.d/rc.unraid_sickbeard -a \$(ps auxwww|grep SickBeard.py|grep -v grep|wc -l) -gt 0; then
  233. kill \$(ps auxwww|grep SickBeard.py|grep -v grep|awk '{ print \$2 }')
  234. sleep 4
  235. echo Sick Beard stopped.
  236. else
  237. echo Sick Beard is already stopped.
  238. fi
  239. ;;
  240. esac
  241. EOF
  242. chmod 755 /etc/rc.d/unraid.d/rc.unraid_sickbeard
  243. echo "-- Created /etc/rc.d/unraid.d/rc.unraid_sickbeard --"
  244. #Creating rc.d entries for couchpotato
  245. cat <<-EOF > /etc/rc.d/unraid.d/rc.unraid_couchpotato
  246. case \$1 in
  247. start)
  248. if test -e /etc/rc.d/unraid.d/rc.unraid_couchpotato -a \$(ps auxwww|grep CouchPotato.py|grep -v grep|wc -l) -lt 1; then
  249. if [ -d /mnt/$customvolume/$customdir/couchpotato/RuudBurger* ]; then
  250. cd /mnt/$customvolume/$customdir/couchpotato/RuudBurger*
  251. chown -R nobody:users .
  252. usermod -s /bin/bash nobody > /dev/null 2>&1
  253. su nobody -c "python CouchPotato.py -d > /dev/null 2>&1"
  254. echo Couch Potato started.
  255. else
  256. echo Couch Potato could not be started because the installation directory, /mnt/$customvolume/$customdir/couchpotato/RuudBurger*, could not be found.
  257. echo If Couch Potato is installed to the unRAID array and the unRAID array is stopped, run \"/etc/rc.d/unraid.d/rc.unraid_couchpotato start\" to start Couch Potato once the unRAID array is started.
  258. fi
  259. else
  260. echo Couch Potato is already started.
  261. fi
  262. ;;
  263. stop)
  264. if test -e /etc/rc.d/unraid.d/rc.unraid_couchpotato -a \$(ps auxwww|grep CouchPotato.py|grep -v grep|wc -l) -gt 0; then
  265. kill \$(ps auxwww|grep CouchPotato.py|grep -v grep|awk '{ print \$2 }')
  266. sleep 4
  267. echo Couch Potato stopped.
  268. else
  269. echo Couch Potato is already stopped.
  270. fi
  271. ;;
  272. esac
  273. EOF
  274. chmod 755 /etc/rc.d/unraid.d/rc.unraid_couchpotato
  275. echo "-- Created /etc/rc.d/unraid.d/rc.unraid_couchpotato --"
  276. mkdir $packagedir/unraid.d
  277. cp /etc/rc.d/unraid.d/* $packagedir/unraid.d
  278. rm -r /etc/rc.d/unraid.d/
  279. echo "******* 6. Adding entries to /boot/config/go *******"
  280. cat >> /boot/config/go <<-HERE
  281. #sabnzbd, sickbeard, and couchpotato entries
  282. sleep 10
  283. # Begin clean powerdown install
  284. CTRLALTDEL=yes installpkg $packagedir/powerdown-1.02-noarch-unRAID.tgz
  285. [ -f /usr/local/sbin/powerdown ] && mv /usr/local/sbin/powerdown /usr/local/sbin/unraid_powerdown
  286. [ -f /usr/local/sbin/unraid_powerdown ] && sed -i "sX/usr/local/sbin/powerdownX/sbin/powerdownX" /etc/acpi/acpi_handler.sh
  287. [ ! -f /usr/local/sbin/unraid_powerdown ] && sed -i "sX/sbin/init 0X/sbin/powerdownX" /etc/acpi/acpi_handler.sh
  288. sysctl -w kernel.poweroff_cmd=/sbin/powerdown
  289. # End clean powerdown install
  290. installpkg $packagedir/nano-2.2.4-i486-1.txz
  291. installpkg $packagedir/python-2.6.4-i486-1.txz
  292. installpkg $packagedir/python-cheetah-2.4.2.1-i486-1alien.tgz
  293. installpkg $packagedir/python-yenc-0.3-i486-1alien.tgz
  294. installpkg $packagedir/sqlite-3.6.23.1-i486-1.txz
  295. installpkg $packagedir/unrar-3.9.10-i486-2alien.tgz
  296. installpkg $packagedir/infozip-5.52-i486-2.tgz
  297. installpkg $packagedir/openssl-0.9.8n-i486-1.txz
  298. installpkg $packagedir/pyopenssl-0.10-i486-2sl.txz
  299. installpkg $packagedir/par2cmdline-0.4-i486-1alien.tgz
  300. tar xzf $packagedir/par2cmdline-0.4-tbb-20090203-lin32.tar.gz -C /tmp
  301. cp /tmp/par2cmdline-0.4-tbb-20090203-lin32/par2 /usr/bin/
  302. cp /tmp/par2cmdline-0.4-tbb-20090203-lin32/libtbb.so /usr/bin/
  303. cp /tmp/par2cmdline-0.4-tbb-20090203-lin32/libtbb.so.2 /usr/bin/
  304. rm -r /tmp/par2cmdline-0.4-tbb-20090203-lin32
  305. mkdir /etc/rc.d/unraid.d
  306. cp $packagedir/unraid.d/* /etc/rc.d/unraid.d
  307. /etc/rc.d/unraid.d/rc.unraid_sabnzbd start
  308. /etc/rc.d/unraid.d/rc.unraid_sickbeard start
  309. /etc/rc.d/unraid.d/rc.unraid_couchpotato start
  310. HERE
  311. echo "-- Added Entries to /boot/config/go --"
  312. echo
  313. echo
  314. echo
  315. echo
  316. echo "!!!!!! Preparing to start all the services for first run !!!!!!"
  317. sleep 5
  318. echo "-- Installing Prerequisites --"
  319. # Begin clean powerdown install
  320. CTRLALTDEL=yes installpkg $packagedir/powerdown-1.02-noarch-unRAID.tgz
  321. [ -f /usr/local/sbin/powerdown ] && mv /usr/local/sbin/powerdown /usr/local/sbin/unraid_powerdown
  322. [ -f /usr/local/sbin/unraid_powerdown ] && sed -i "sX/usr/local/sbin/powerdownX/sbin/powerdownX" /etc/acpi/acpi_handler.sh
  323. [ ! -f /usr/local/sbin/unraid_powerdown ] && sed -i "sX/sbin/init 0X/sbin/powerdownX" /etc/acpi/acpi_handler.sh
  324. sysctl -w kernel.poweroff_cmd=/sbin/powerdown
  325. # End clean powerdown install
  326. installpkg $packagedir/nano-2.2.4-i486-1.txz
  327. installpkg $packagedir/python-2.6.4-i486-1.txz
  328. installpkg $packagedir/python-cheetah-2.4.2.1-i486-1alien.tgz
  329. installpkg $packagedir/python-yenc-0.3-i486-1alien.tgz
  330. installpkg $packagedir/sqlite-3.6.23.1-i486-1.txz
  331. installpkg $packagedir/unrar-3.9.10-i486-2alien.tgz
  332. installpkg $packagedir/infozip-5.52-i486-2.tgz
  333. installpkg $packagedir/openssl-0.9.8n-i486-1.txz
  334. installpkg $packagedir/pyopenssl-0.10-i486-2sl.txz
  335. installpkg $packagedir/par2cmdline-0.4-i486-1alien.tgz
  336. # par2cmdline replace with multicore version
  337. tar xzf $packagedir/par2cmdline-0.4-tbb-20090203-lin32.tar.gz -C /tmp
  338. cp /tmp/par2cmdline-0.4-tbb-20090203-lin32/par2 /usr/bin/
  339. cp /tmp/par2cmdline-0.4-tbb-20090203-lin32/libtbb.so /usr/bin/
  340. cp /tmp/par2cmdline-0.4-tbb-20090203-lin32/libtbb.so.2 /usr/bin/
  341. rm -r /tmp/par2cmdline-0.4-tbb-20090203-lin32
  342. echo "- Replaced par2cmdline with MultiCore Version -"
  343. echo "-- Prerequisites Installed --"
  344. echo
  345. echo
  346. mkdir /etc/rc.d/unraid.d
  347. cp $packagedir/unraid.d/* /etc/rc.d/unraid.d
  348. chmod 755 /etc/rc.d/unraid.d/rc.unraid_sabnzbd
  349. chmod 755 /etc/rc.d/unraid.d/rc.unraid_sickbeard
  350. chmod 755 /etc/rc.d/unraid.d/rc.unraid_couchpotato
  351. /etc/rc.d/unraid.d/rc.unraid_sabnzbd start
  352. /etc/rc.d/unraid.d/rc.unraid_sickbeard start
  353. /etc/rc.d/unraid.d/rc.unraid_couchpotato start
  354. echo
  355. echo " ******* Script is complete *******"
  356. echo
  357. echo "Access your new services via the following addresses:"
  358. echo "SABnzbd --- http://$ip:$sabport"
  359. echo "SickBeard --- http://$ip:$sickbeardport"
  360. echo "CouchPotato --- http://$ip:$couchpotatoport"
  361. echo
  362. echo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement