pwg_rel_create.sh 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #!/bin/bash
  2. script_abspath=$(perl -e 'use Cwd "abs_path"; print abs_path(@ARGV[0])' -- "$0")
  3. scriptdir=$(dirname $script_abspath)
  4. # +--------------------------------------------------------------------------+
  5. # | pwg_rel_create.sh |
  6. # +--------------------------------------------------------------------------+
  7. # | author : Pierrick LE GALL <http://le-gall.net/pierrick> |
  8. # | project : Piwigo |
  9. # +--------------------------------------------------------------------------+
  10. if [ $# -lt 1 ]
  11. then
  12. echo
  13. echo 'usage : '$(basename $0)' <version number> [<sha>]'
  14. echo
  15. exit 1
  16. fi
  17. version=$1
  18. sha=$2
  19. name=piwigo-$version
  20. cd /tmp
  21. if [ -e $version ]
  22. then
  23. rm -rf $version
  24. fi
  25. mkdir $version
  26. cd $version
  27. git clone https://github.com/Piwigo/Piwigo.git piwigo
  28. cd piwigo
  29. if [ $# -eq 2 ]
  30. then
  31. git checkout $2
  32. fi
  33. # remove Git metadata
  34. rm -rf /tmp/$version/piwigo/.git
  35. # +--------------------------------------------------------------------------+
  36. # | plugins |
  37. # +--------------------------------------------------------------------------+
  38. cd plugins
  39. for plugin in TakeATour AdminTools LocalFilesEditor LanguageSwitch
  40. do
  41. cd /tmp/$version/piwigo/plugins
  42. plugin_dir=$plugin
  43. if [ $plugin = "LanguageSwitch" ]
  44. then
  45. plugin_dir=language_switch
  46. fi
  47. # clone repo
  48. git clone https://github.com/Piwigo/${plugin}.git $plugin_dir
  49. cd /tmp/$version/piwigo/plugins/$plugin_dir
  50. # change version
  51. perl $scriptdir/replace_version.pl --file=main.inc.php --version=$version
  52. # register metadata in dedicated file
  53. echo https://github.com/Piwigo/${plugin}.git > pem_metadata.txt
  54. git log -n 1 --pretty=format:"%H %ad" --date=iso8601 >> pem_metadata.txt
  55. # remove Git metadata
  56. rm -rf .git
  57. done
  58. # +--------------------------------------------------------------------------+
  59. # | themes |
  60. # +--------------------------------------------------------------------------+
  61. for theme in modus elegant smartpocket
  62. do
  63. cd /tmp/$version/piwigo/themes
  64. git_url=https://github.com/Piwigo/piwigo-${theme}.git
  65. # clone repo
  66. git clone $git_url $theme
  67. # enter theme directory for next actions
  68. cd $theme
  69. # change version
  70. perl $scriptdir/replace_version.pl --file=themeconf.inc.php --version=$version
  71. # register metadata in dedicated file
  72. echo $git_url > pem_metadata.txt
  73. git log -n 1 --pretty=format:"%H %ad" --date=iso8601 >> pem_metadata.txt
  74. # remove Git metadata
  75. rm -rf .git
  76. done
  77. # +--------------------------------------------------------------------------+
  78. # | languages |
  79. # +--------------------------------------------------------------------------+
  80. cd /tmp/$version/piwigo/language
  81. for languagefile in $(ls */common.lang.php)
  82. do
  83. # change version
  84. perl $scriptdir/replace_version.pl --file=$languagefile --version=$version
  85. done
  86. # +--------------------------------------------------------------------------+
  87. # | data directories + zip 1 |
  88. # +--------------------------------------------------------------------------+
  89. # create "data" directories
  90. cd /tmp/$version
  91. mkdir piwigo/upload
  92. mkdir piwigo/_data
  93. touch piwigo/_data/dummy.txt
  94. zip -q -r $name-nochmod.zip piwigo
  95. # +--------------------------------------------------------------------------+
  96. # | permissions + zip 2 |
  97. # +--------------------------------------------------------------------------+
  98. chmod -R a+w piwigo/local
  99. chmod a+w piwigo/_data
  100. chmod a+w piwigo/upload
  101. chmod a+w piwigo/plugins
  102. chmod a+w piwigo/themes
  103. zip -q -r $name.zip piwigo
  104. echo cd /tmp/$version