Subversion Repositories oidplus

Rev

Rev 1438 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1426 daniel-mar 1
#!/bin/bash
2
 
3
# OIDplus 2.0
4
# Copyright 2019 - 2023 Daniel Marschall, ViaThinkSoft
5
#
6
# Licensed under the Apache License, Version 2.0 (the "License");
7
# you may not use this file except in compliance with the License.
8
# You may obtain a copy of the License at
9
#
10
#     http://www.apache.org/licenses/LICENSE-2.0
11
#
12
# Unless required by applicable law or agreed to in writing, software
13
# distributed under the License is distributed on an "AS IS" BASIS,
14
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
# See the License for the specific language governing permissions and
16
# limitations under the License.
17
 
18
echo "==============================="
19
echo "PREPARE FOR NEW OIDPLUS VERSION"
20
echo "==============================="
21
echo ""
22
 
23
# Please make sure to do all these steps before committing ANYTHING:
24
 
1440 daniel-mar 25
# TODO: should we ask the user to do a "svn update"?
26
 
1426 daniel-mar 27
DIR=$( dirname "$0" )
28
 
1438 daniel-mar 29
# 0. Search for SPONGE (Marker invented by Terry A Davis)
1436 daniel-mar 30
echo "0. Checking for forgotten sponges"
31
grep -r "SPONGE" | grep -v "\.svn/pristine" | grep -v "dev/release.sh"
32
if [ $? -eq 0 ]; then
33
        echo "STOP! There are missing files. Please fix this problem (remove them from the SVN)"
34
        exit 1
35
fi
36
 
1426 daniel-mar 37
# 1. Recommended: Run dev/vendor_update.sh and make sure new/deleted files are added/deleted from the SVN/Git working copy
38
echo "1. Run composer vendor update? (Recommended to do regularly)"
39
select yn in "Yes" "No"; do
40
    case $yn in
41
        Yes ) "$DIR"/vendor_update.sh; break;;
42
        No ) break;;
43
    esac
44
done
45
 
1427 daniel-mar 46
# 2. Make sure there are no unversioned files (otherwise systemfile check will generate wrong stuff)
1426 daniel-mar 47
# PLEASE MAKE SURE that the SVN/Git-Working copy has no unversioned files, otherwise they would be included in the checksum catalog
1427 daniel-mar 48
echo "2. Checking unversioned files"
1426 daniel-mar 49
if [ -d "$DIR"/../.svn ]; then
50
        cd "$DIR"/.. && svn stat | grep "^?"
51
        if [ $? -eq 0 ]; then
52
                echo "STOP! There are unversioned files. Please add or remove them. (Otherwise systemfile check plugin will add these files)"
53
                exit 1
54
        fi
55
        cd "$DIR"/.. && svn stat | grep "^!"
56
        if [ $? -eq 0 ]; then
57
                echo "STOP! There are missing files. Please fix this problem (remove them from the SVN)"
58
                exit 1
59
        fi
60
fi
61
if [ -d "$DIR"/../.git ]; then
62
        cd "$DIR"/.. && git status
63
        echo "Is everything OK? (All files committed, no unversioned stuff? Otherwise system file check plugin will not work correctly)"
64
        select yn in "Yes" "No"; do
65
            case $yn in
66
                Yes ) break;;
67
                No ) echo "Please fix the issue first"; exit 1;;
68
            esac
69
        done
70
fi
71
 
1427 daniel-mar 72
# 3. Run dev/translation/message_regenerate.phps and translate things which are missing in plugins/viathinksoft/language/dede/messages.xml (search for "TODO")
73
echo "3. Checking translation..."
74
while true; do
75
        "$DIR"/translation/message_regenerate.phps
76
        cat "$DIR"/../plugins/viathinksoft/language/dede/messages.xml | grep TODO > /dev/null
77
        if [ $? -eq 0 ]; then
78
                echo "Problem: There are untranslated strings! Please translate them."
79
                sleep 2
80
                nano "$DIR"/../plugins/viathinksoft/language/dede/messages.xml
81
        else
82
                break
83
        fi
84
done
85
 
1436 daniel-mar 86
# 4. Run dev/logger/verify_maskcodes.phps
87
echo "4. Verify OIDplus Logger Maskcodes..."
88
"$DIR"/logger/verify_maskcodes.phps
89
if [ $? -ne 0 ]; then
90
        echo "Please fix the issues and run release script again"
91
        exit 1
92
fi
93
 
94
# 5. Run phpstan
95
echo "5. Running PHPSTAN..."
1427 daniel-mar 96
cd "$DIR"/.. && phpstan
97
echo "Is PHPSTAN output OK?"
98
select yn in "Yes" "No"; do
99
    case $yn in
100
        Yes ) break;;
101
        No ) echo "Please fix the issues and run release script again"; exit 1;;
102
    esac
103
done
104
 
1436 daniel-mar 105
# 6. Only if you want to start a new release: Add new entry to the top of changelog.json.php
106
echo "6. Please edit changelog.json.php (add '-dev' for non-stable versions)"
1426 daniel-mar 107
sleep 2
1432 daniel-mar 108
while true; do
109
    nano "$DIR"/../changelog.json.php
110
    echo '<?php if (!@json_decode(@file_get_contents("'$DIR'/../changelog.json.php"))) exit(1);' | php
111
    if [ $? -eq 0 ]; then
112
        break
113
    else
114
        echo "JSON Syntax error! Please fix it"
115
        sleep 2
116
    fi
117
done
1426 daniel-mar 118
 
1436 daniel-mar 119
# 7. Run plugins/viathinksoft/adminPages/902_systemfile_check/private/gen_serverside_v3
120
echo "7. Generate system file check checksum file..."
1426 daniel-mar 121
"$DIR"/../plugins/viathinksoft/adminPages/902_systemfile_check/private/gen_serverside_v3
122
 
1436 daniel-mar 123
# 8. Commit to SVN or GIT
1426 daniel-mar 124
if [ -d "$DIR"/../.svn ]; then
1436 daniel-mar 125
        echo "8. Committing to SVN"
1426 daniel-mar 126
        svn commit
127
elif [ -d "$DIR"/../.git ]; then
1436 daniel-mar 128
        echo "8. ALL GOOD! PLEASE NOW COMMIT TO GIT"
1426 daniel-mar 129
else
1436 daniel-mar 130
        echo "8. ALL GOOD! YOU CAN RELEASE IT"
1426 daniel-mar 131
fi
132
exit 0
133
 
1436 daniel-mar 134
# 9. (ViaThinkSoft internal / runs automatically) Sync SVN to GitHub
1426 daniel-mar 135
 
1436 daniel-mar 136
# 10. (ViaThinkSoft internal / runs automatically) Run plugins/viathinksoft/adminPages/900_software_update/private/gen_serverside_git
137
#                                                  or  plugins/viathinksoft/adminPages/900_software_update/private/gen_serverside_svn
138
#                                                  depending wheather you want to use GIT or SVN as your development base
139
#                                                  (Repos are read from includes/edition.ini)