Advertisement
overloop

html_galery_generator.sh

May 20th, 2013
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.82 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. thumb_width=209
  4. thumb_height=300
  5. thumb_step=8
  6.  
  7. echo "var pages=[" > "galery_data.js"
  8. find -type d | while read filename; do
  9. if [ "$filename" != "." ]; then
  10.     echo -n "'" >> "galery_data.js"
  11.     find "$filename" -type f | grep "\.jpg$\|\.png$\|\.gif$" | awk -v w=$thumb_width -v h=$thumb_height -v s=$thumb_step -F'\t' 'BEGIN { n=0 } { title=$1; sub(/[^/]*$/,"",title); if (n==0) print "<h1>" title "</h1>"; if ( n % s == 0 ) print n "<img src=\"" $1 "\" style=\"width: " w "px; height: " h "px\">"; n=n+1;}' | tr '\n' ' ' >> "galery_data.js"
  12.     echo "'," >> "galery_data.js"
  13.     #break
  14. fi
  15. done
  16. echo "''];" >> "galery_data.js"
  17.  
  18. echo '<html>
  19. <head>
  20. <title> Galery preview </title>
  21. <script type="text/javascript" src="galery_data.js"></script>
  22. <script type="text/javascript" src="galery_script.js"></script>
  23. </head>
  24. <body onload="setPage(0);">
  25. <form name="main" method="get" action="?" enctype="application/x-www-form-urlencoded">
  26. <input type="button" name="" value="<" onclick="prevPage();"/>
  27. <input type="text" name="current" value="0" size="3" onchange="setPage(parseInt(this.value));"/>
  28. <input type="button" name="" value=">" onclick="nextPage();"/>
  29. </form>
  30. <div id="preview">
  31. </div>
  32. </body>
  33. </html>' > galery.html
  34.  
  35. echo 'function setPage(n) {
  36.     var preview = document.getElementById("preview");
  37.     while (preview.hasChildNodes())
  38.         preview.removeChild(preview.firstChild);
  39.     var child = document.createElement("div");
  40.     child.innerHTML = pages[n];
  41.     preview.appendChild(child);
  42.     document.forms["main"].current.value = n;
  43. }
  44.  
  45. function nextPage() {
  46.     var n = parseInt(document.forms["main"].current.value);
  47.     if (n+1<pages.length) {
  48.         n = n + 1;
  49.         setPage(n);
  50.     }
  51. }
  52.  
  53. function prevPage() {
  54.     var n = parseInt(document.forms["main"].current.value);
  55.     if (n>0) {
  56.         n = n - 1;
  57.         setPage(n);
  58.     }
  59. }' > galery_script.js
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement