sxiii

Distrowatch Disto Parser

Feb 5th, 2012
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.63 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. echo "Getting current quantity of Linux Distributions..."
  4. q=$(wget -q -O - distrowatch.com/weekly.php?issue=current | grep "all distributions</a> in the database" | awk -F: '{ print $2 }' | awk -F"<" '{ print $1 }')
  5. echo "There are$q linux distibutions @ $(date +%d.%m.%Y)"
  6.  
  7. echo "Loading distros list..."
  8. wget -q -O - distrowatch.com | grep -A $q "height: 20%" | html2text | uniq > linux.list
  9.  
  10. mkdir $(date +%d.%m.%Y)
  11. cd $(date +%d.%m.%Y)
  12.  
  13. echo "Loading distros info..."
  14.  
  15. cat ../linux.list | while read line;do
  16. i=$(($i+1))
  17. echo "$line... ($i /$q)"
  18. wget -q -O "$line.desc" http://distrowatch.com/table.php?distribution=$line
  19.  
  20. cat "$line.desc" | html2text > "$line.text"
  21.  
  22. basedon=$(cat "$line.text" | grep "Based on" | awk -F: '{ print $2 }')
  23. origin=$(cat "$line.text" | grep "Origin" | awk -F: '{ print $2 }')
  24. arch=$(cat "$line.text" | grep "Architecture" | awk -F: '{ print $2 }')
  25. desktop=$(cat "$line.text" | grep "Desktop" | awk -F: '{ print $2 }' | html2text)
  26. category=$(cat "$line.text" | grep "Category" | awk -F: '{ print $2 }')
  27. status=$(cat "$line.text" | grep "Status" | awk -F: '{ print $2 }')
  28. desc=$(cat "$line.desc" | grep "</ul><hr>" -A2 | grep "<br><br>" | html2text)
  29. web=$(cat "$line.text" | grep "Home Page" | awk -F"www." '{ print $2 }')
  30. lastv=$(cat "$line.desc" | grep -A1 Feature | awk -F"td" '{ print $2 }' | awk -F">" '{ print $2 }' | awk -F"<" '{ print $1 }' | html2text )
  31. echo "Based On:$basedon"
  32. echo "Origin:$origin"
  33. echo "Architecture:$arch"
  34. echo "Desktops:$desktop"
  35. echo "Category:$category"
  36. echo "Status:$status"
  37. echo "Description:$desc"
  38. echo "Website:$web"
  39. echo "Latest version:$lastv"
  40. done
Add Comment
Please, Sign In to add comment