Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
dolibarr
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Model registry
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Software_Artifact_Infrastructure_Repository
dolibarr
Commits
8878af08
Commit
8878af08
authored
14 years ago
by
Laurent Destailleur
Browse files
Options
Downloads
Patches
Plain Diff
Prepare build of modules for 3.0
parent
316e7a7d
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
build/makepack-dolibarrmodule.pl
+236
-204
236 additions, 204 deletions
build/makepack-dolibarrmodule.pl
with
236 additions
and
204 deletions
build/makepack-dolibarrmodule.pl
+
236
−
204
View file @
8878af08
...
...
@@ -78,23 +78,8 @@ for (0..@ARGV-1) {
}
}
print
"
Makepack module version
$VERSION
\n
";
print
"
Enter name for your module (mymodule, mywonderfulmondule, ...) :
";
$PROJECT
=<
STDIN
>
;
chomp
(
$PROJECT
);
print
"
Move to
"
.
$DIR
.
"
directory.
\n
";
chdir
(
$DIR
);
print
"
Makepack for modules version
$VERSION
\n
";
if
(
!
-
f
"
makepack-
"
.
$PROJECT
.
"
.conf
")
{
print
"
Error: can't open conf file makepack-
"
.
$PROJECT
.
"
.conf
\n
";
print
"
\n
";
print
"
For help on building a module package, see web page
\n
";
print
"
http://wiki.dolibarr.org/index.php/Module_development#Create_a_package_to_distribute_and_install_your_module
\n
";
print
"
makepack-dolibarrmodule.pl aborted.
\n
";
sleep
2
;
exit
2
;
}
# Ask and set version $MAJOR and $MINOR
print
"
Enter value for version:
";
$PROJVERSION
=<
STDIN
>
;
...
...
@@ -102,22 +87,17 @@ chomp($PROJVERSION);
(
$MAJOR
,
$MINOR
,
$BUILD
)
=
split
(
/\./
,
$PROJVERSION
,
3
);
if
(
$MINOR
eq
'')
{
print
"
Enter value for minor version:
";
$MINOR
=<
STDIN
>
;
chomp
(
$MINOR
);
print
"
Enter value for minor version:
";
$MINOR
=<
STDIN
>
;
chomp
(
$MINOR
);
}
$FILENAME
=
"
$PROJECT
";
$FILENAMETGZ
=
"
module_
$PROJECT
-
$MAJOR
.
$MINOR
";
$FILENAMEZIP
=
"
module_
$PROJECT
-
$MAJOR
.
$MINOR
";
if
(
-
d
"
/usr/src/redhat
")
{
# redhat
$RPMDIR
=
"
/usr/src/redhat
";
}
if
(
-
d
"
/usr/src/RPM
")
{
# mandrake
$RPMDIR
=
"
/usr/src/RPM
";
}
# Ask module
print
"
Enter name for your module (mymodule, mywonderfulmondule, ...) :
";
$PROJECTINPUT
=<
STDIN
>
;
chomp
(
$PROJECTINPUT
);
print
"
Move to
"
.
$DIR
.
"
directory.
\n
";
chdir
(
$DIR
);
$SOURCE
=
"
$DIR
/..
";
$DESTI
=
"
$SOURCE
/build
";
...
...
@@ -125,196 +105,248 @@ $DESTI="$SOURCE/build";
print
"
Source directory:
$SOURCE
\n
";
print
"
Target directory:
$DESTI
\n
";
# Choose package targets
#-----------------------
$target
=
"
ZIP
";
# Dolibarr modules are this format
$CHOOSEDTARGET
{
uc
(
$target
)}
=
1
;
# Test if requirement is ok
#--------------------------
foreach
my
$target
(
keys
%CHOOSEDTARGET
)
{
foreach
my
$req
(
split
(
/[,\s]/
,
$REQUIREMENTTARGET
{
$target
}))
{
# Test
print
"
Test requirement for target
$target
: Search '
$req
'...
";
$ret
=
`
"
$req
" 2>&1
`;
$coderetour
=
$?
;
$coderetour2
=
$coderetour
>>
8
;
if
(
$coderetour
!=
0
&&
((
$coderetour2
==
1
&&
$OS
=~
/windows/
&&
$ret
!~
/Usage/i
)
||
(
$coderetour2
==
127
&&
$OS
!~
/windows/
))
&&
$PROGPATH
)
{
# Not found error, we try in PROGPATH
$ret
=
`
"
$PROGPATH
/
$ALTERNATEPATH
{
$req
}/
$req
\
" 2>&1
`;
$coderetour
=
$?
;
$coderetour2
=
$coderetour
>>
8
;
$REQUIREMENTTARGET
{
$target
}
=
"
$PROGPATH
/
$ALTERNATEPATH
{
$req
}/
$req
";
}
if
(
$coderetour
!=
0
&&
((
$coderetour2
==
1
&&
$OS
=~
/windows/
&&
$ret
!~
/Usage/i
)
||
(
$coderetour2
==
127
&&
$OS
!~
/windows/
)))
{
# Not found error
print
"
Not found
\n
Can't build target
$target
. Requirement '
$req
' not found in PATH
\n
";
$CHOOSEDTARGET
{
$target
}
=-
1
;
last
;
}
else
{
# Pas erreur ou erreur autre que programme absent
print
"
Found
"
.
$REQUIREMENTTARGET
{
$target
}
.
"
\n
";
}
my
@PROJECTLIST
=
();
if
(
$PROJECTINPUT
eq
"
all
")
{
opendir
(
DIR
,
$DIR
)
||
return
;
local
@rv
=
grep
{
/^makepack\-(.*)\.conf$/
}
sort
readdir
(
DIR
);
closedir
(
DIR
);
foreach
my
$xxx
(
0
..
@rv
-
1
)
{
if
(
$rv
[
$xxx
]
=~
/^makepack\-(.*)\.conf$/
)
{
@PROJECTLIST
[
$xxx
]
=
$
1
;
}
}
}
else
{
@PROJECTLIST
=
(
$PROJECTINPUT
);
}
print
"
\n
";
# Check if there is at least on target to build
#----------------------------------------------
$nboftargetok
=
0
;
$nboftargetneedbuildroot
=
0
;
$nboftargetneedcvs
=
0
;
foreach
my
$target
(
keys
%CHOOSEDTARGET
)
{
if
(
$CHOOSEDTARGET
{
$target
}
<
0
)
{
next
;
}
if
(
$target
ne
'
EXE
'
&&
$target
ne
'
EXEDOLIWAMP
')
# Loop on each projects
foreach
my
$PROJECT
(
@PROJECTLIST
)
{
if
(
!
-
f
"
makepack-
"
.
$PROJECT
.
"
.conf
")
{
$nboftargetneedbuildroot
++
;
print
"
Error: can't open conf file makepack-
"
.
$PROJECT
.
"
.conf
\n
";
print
"
\n
";
print
"
For help on building a module package, see web page
\n
";
print
"
http://wiki.dolibarr.org/index.php/Module_development#Create_a_package_to_distribute_and_install_your_module
\n
";
print
"
makepack-dolibarrmodule.pl aborted.
\n
";
sleep
2
;
exit
2
;
}
if
(
$target
eq
'
SNAPSHOT
')
{
$nboftargetneedcvs
++
;
$FILENAME
=
"
$PROJECT
";
$FILENAMETGZ
=
"
module_
$PROJECT
-
$MAJOR
.
$MINOR
";
$FILENAMEZIP
=
"
module_
$PROJECT
-
$MAJOR
.
$MINOR
";
if
(
-
d
"
/usr/src/redhat
")
{
# redhat
$RPMDIR
=
"
/usr/src/redhat
";
}
$nboftargetok
++
;
}
if
(
$nboftargetok
)
{
# Update CVS if required
#-----------------------
if
(
$nboftargetneedcvs
)
{
print
"
Go to directory
$SOURCE
\n
";
$olddir
=
getcwd
();
chdir
("
$SOURCE
");
print
"
Run cvs update -P -d
\n
";
$ret
=
`
cvs update -P -d 2>&1
`;
chdir
("
$olddir
");
if
(
-
d
"
/usr/src/RPM
")
{
# mandrake
$RPMDIR
=
"
/usr/src/RPM
";
}
# Update buildroot if required
#-----------------------------
if
(
$nboftargetneedbuildroot
)
{
if
(
!
$copyalreadydone
)
{
print
"
Delete directory
$BUILDROOT
\n
";
$ret
=
`
rm -fr "
$BUILDROOT
"
`;
mkdir
"
$BUILDROOT
";
mkdir
"
$BUILDROOT
/
$PROJECT
";
$result
=
open
(
IN
,"
<makepack-
"
.
$PROJECT
.
"
.conf
");
if
(
!
$result
)
{
die
"
Error: Can't open conf file makepack-
"
.
$PROJECT
.
"
.conf for reading.
\n
";
}
while
(
<
IN
>
)
{
if
(
$_
=~
/^#/
)
{
next
;
}
# Do not process comments
# Choose package targets
#-----------------------
$target
=
"
ZIP
";
# Dolibarr modules are this format
$CHOOSEDTARGET
{
uc
(
$target
)}
=
1
;
# Test if requirement is ok
#--------------------------
foreach
my
$target
(
keys
%CHOOSEDTARGET
)
{
foreach
my
$req
(
split
(
/[,\s]/
,
$REQUIREMENTTARGET
{
$target
}))
{
# Test
print
"
Test requirement for target
$target
: Search '
$req
'...
";
$ret
=
`
"
$req
" 2>&1
`;
$coderetour
=
$?
;
$coderetour2
=
$coderetour
>>
8
;
if
(
$coderetour
!=
0
&&
((
$coderetour2
==
1
&&
$OS
=~
/windows/
&&
$ret
!~
/Usage/i
)
||
(
$coderetour2
==
127
&&
$OS
!~
/windows/
))
&&
$PROGPATH
)
{
# Not found error, we try in PROGPATH
$ret
=
`
"
$PROGPATH
/
$ALTERNATEPATH
{
$req
}/
$req
\
" 2>&1
`;
$coderetour
=
$?
;
$coderetour2
=
$coderetour
>>
8
;
$REQUIREMENTTARGET
{
$target
}
=
"
$PROGPATH
/
$ALTERNATEPATH
{
$req
}/
$req
";
}
if
(
$coderetour
!=
0
&&
((
$coderetour2
==
1
&&
$OS
=~
/windows/
&&
$ret
!~
/Usage/i
)
||
(
$coderetour2
==
127
&&
$OS
!~
/windows/
)))
{
# Not found error
print
"
Not found
\n
Can't build target
$target
. Requirement '
$req
' not found in PATH
\n
";
$CHOOSEDTARGET
{
$target
}
=-
1
;
last
;
}
else
{
# Pas erreur ou erreur autre que programme absent
print
"
Found
"
.
$REQUIREMENTTARGET
{
$target
}
.
"
\n
";
}
}
}
print
"
\n
";
# Check if there is at least on target to build
#----------------------------------------------
$nboftargetok
=
0
;
$nboftargetneedbuildroot
=
0
;
$nboftargetneedcvs
=
0
;
foreach
my
$target
(
keys
%CHOOSEDTARGET
)
{
if
(
$CHOOSEDTARGET
{
$target
}
<
0
)
{
next
;
}
if
(
$target
ne
'
EXE
'
&&
$target
ne
'
EXEDOLIWAMP
')
{
$nboftargetneedbuildroot
++
;
}
if
(
$target
eq
'
SNAPSHOT
')
{
$nboftargetneedcvs
++
;
}
$nboftargetok
++
;
}
if
(
$nboftargetok
)
{
# Update CVS if required
#-----------------------
if
(
$nboftargetneedcvs
)
{
print
"
Go to directory
$SOURCE
\n
";
$olddir
=
getcwd
();
chdir
("
$SOURCE
");
print
"
Run cvs update -P -d
\n
";
$ret
=
`
cvs update -P -d 2>&1
`;
chdir
("
$olddir
");
}
# Update buildroot if required
#-----------------------------
if
(
$nboftargetneedbuildroot
)
{
if
(
!
$copyalreadydone
)
{
print
"
Delete directory
$BUILDROOT
\n
";
$ret
=
`
rm -fr "
$BUILDROOT
"
`;
mkdir
"
$BUILDROOT
";
mkdir
"
$BUILDROOT
/
$PROJECT
";
$result
=
open
(
IN
,"
<makepack-
"
.
$PROJECT
.
"
.conf
");
if
(
!
$result
)
{
die
"
Error: Can't open conf file makepack-
"
.
$PROJECT
.
"
.conf for reading.
\n
";
}
while
(
<
IN
>
)
{
if
(
$_
=~
/^#/
)
{
next
;
}
# Do not process comments
$_
=~
s/\n//
;
$_
=~
/^(.*)\/[^\/]+/
;
print
"
Create directory
$BUILDROOT
/
$PROJECT
/$1
\n
";
$ret
=
`
mkdir -p "
$BUILDROOT
/
$PROJECT
/$1"
`;
if
(
$_
!~
/version\-/
)
{
print
"
Copy
$SOURCE
/
$_
into
$BUILDROOT
/
$PROJECT
/
$_
\n
";
$ret
=
`
cp -pr "
$SOURCE
/
$_
" "
$BUILDROOT
/
$PROJECT
/
$_
"
`;
}
}
close
IN
;
$_
=~
s/\n//
;
$_
=~
/^(.*)\/[^\/]+/
;
print
"
Create directory
$BUILDROOT
/
$PROJECT
/$1
\n
";
$ret
=
`
mkdir -p "
$BUILDROOT
/
$PROJECT
/$1"
`;
print
"
Copy
$SOURCE
/
$_
into
$BUILDROOT
/
$PROJECT
/
$_
\n
";
$ret
=
`
cp -pr "
$SOURCE
/
$_
" "
$BUILDROOT
/
$PROJECT
/
$_
"
`;
}
close
IN
;
@timearray
=
localtime
(
time
());
$fulldate
=
(
$timearray
[
5
]
+
1900
)
.
'
-
'
.
(
$timearray
[
4
]
+
1
)
.
'
-
'
.
$timearray
[
3
]
.
'
'
.
$timearray
[
2
]
.
'
:
'
.
$timearray
[
1
];
open
(
VF
,"
>
$BUILDROOT
/
$PROJECT
/build/version-
"
.
$PROJECT
.
"
.txt
");
@timearray
=
localtime
(
time
());
$fulldate
=
(
$timearray
[
5
]
+
1900
)
.
'
-
'
.
(
$timearray
[
4
]
+
1
)
.
'
-
'
.
$timearray
[
3
]
.
'
'
.
$timearray
[
2
]
.
'
:
'
.
$timearray
[
1
];
open
(
VF
,"
>
$BUILDROOT
/
$PROJECT
/build/version-
"
.
$PROJECT
.
"
.txt
");
print
"
Create version file
$BUILDROOT
/
$PROJECT
/build/version-
"
.
$PROJECT
.
"
.txt with date
"
.
$fulldate
.
"
\n
";
$ret
=
`
mkdir -p "
$BUILDROOT
/
$PROJECT
/build"
`;
print
VF
"
Version:
"
.
$MAJOR
.
"
.
"
.
$MINOR
.
"
\n
";
print
VF
"
Build :
"
.
$fulldate
.
"
\n
";
close
VF
;
}
print
"
Clean
$BUILDROOT
\n
";
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/.cache
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/.project
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/.settings
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/index.php
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/build/html
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/documents
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/document
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/conf/conf.php.mysql
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/conf/conf.php.old
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/conf/conf.php.postgres
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/conf/conf*sav*
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/custom
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/custom2
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/theme/bureau2crea
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/test
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/Thumbs.db
$BUILDROOT
/
$PROJECT
/*/Thumbs.db
$BUILDROOT
/
$PROJECT
/*/*/Thumbs.db
$BUILDROOT
/
$PROJECT
/*/*/*/Thumbs.db
$BUILDROOT
/
$PROJECT
/*/*/*/*/Thumbs.db
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/CVS*
$BUILDROOT
/
$PROJECT
/*/CVS*
$BUILDROOT
/
$PROJECT
/*/*/CVS*
$BUILDROOT
/
$PROJECT
/*/*/*/CVS*
$BUILDROOT
/
$PROJECT
/*/*/*/*/CVS*
$BUILDROOT
/
$PROJECT
/*/*/*/*/*/CVS*
`;
}
# Build package for each target
#------------------------------
foreach
my
$target
(
keys
%CHOOSEDTARGET
)
{
if
(
$CHOOSEDTARGET
{
$target
}
<
0
)
{
next
;
}
print
"
\n
Build package for target
$target
\n
";
if
(
$target
eq
'
TGZ
')
{
print
"
Remove target
$FILENAMETGZ
.tgz...
\n
";
unlink
("
$DESTI
/
$FILENAMETGZ
.tgz
");
print
"
Compress
$BUILDROOT
/* into
$FILENAMETGZ
.tgz...
\n
";
$cmd
=
"
tar --exclude-vcs --exclude *.tgz --directory
\"
$BUILDROOT
\"
--mode=go-w --group=500 --owner=500 -czvf
\"
$FILENAMETGZ
.tgz
\"
.
";
$ret
=
`
$cmd
`;
if
(
$OS
=~
/windows/i
)
{
print
"
Move
$FILENAMETGZ
.tgz to
$DESTI
/
$FILENAMETGZ
.tgz
\n
";
$ret
=
`
mv "
$FILENAMETGZ
.tgz" "
$DESTI
/
$FILENAMETGZ
.tgz"
`;
}
else
{
$ret
=
`
mv "
$FILENAMETGZ
.tgz" "
$DESTI
/
$FILENAMETGZ
.tgz"
`;
}
next
;
}
if
(
$target
eq
'
ZIP
')
{
print
"
Remove target
$FILENAMEZIP
.zip...
\n
";
unlink
"
$DESTI
/
$FILENAMEZIP
.zip
";
print
"
Compress
$FILENAMEZIP
into
$FILENAMEZIP
.zip...
\n
";
print
"
Create version file
$BUILDROOT
/
$PROJECT
/build/version-
"
.
$PROJECT
.
"
.txt with date
"
.
$fulldate
.
"
\n
";
$ret
=
`
mkdir -p "
$BUILDROOT
/
$PROJECT
/build"
`;
print
VF
"
Version:
"
.
$MAJOR
.
"
.
"
.
$MINOR
.
"
\n
";
print
VF
"
Build :
"
.
$fulldate
.
"
\n
";
close
VF
;
print
"
Go to directory
$BUILDROOT
/
$PROJECT
\n
";
$olddir
=
getcwd
();
chdir
("
$BUILDROOT
/
$PROJECT
");
$cmd
=
"
7z a -r -tzip -mx
$BUILDROOT
/
$FILENAMEZIP
.zip *
";
print
$cmd
.
"
\n
";
$ret
=
`
$cmd
`;
chdir
("
$olddir
");
print
"
Move
$FILENAMEZIP
.zip to
$DESTI
/
$FILENAMEZIP
.zip
\n
";
$ret
=
`
mv "
$BUILDROOT
/
$FILENAMEZIP
.zip" "
$DESTI
/
$FILENAMEZIP
.zip"
`;
next
;
}
if
(
$target
eq
'
EXE
')
{
print
"
Remove target
$FILENAMEEXE
.exe...
\n
";
unlink
"
$DESTI
/
$FILENAMEEXE
.exe
";
print
"
Compress into
$FILENAMEEXE
.exe by
$FILENAMEEXE
.nsi...
\n
";
$command
=
"
\"
$REQUIREMENTTARGET
{
$target
}
\"
/DMUI_VERSION_DOT=
$MAJOR
.
$MINOR
.
$BUILD
/X
\"
SetCompressor bzip2
\"
\"
$SOURCE
\\
build
\\
exe
\\
$FILENAME
.nsi
\"
";
print
"
$command
\n
";
$ret
=
`
$command
`;
print
"
Move
$FILENAMEEXE
.exe to
$DESTI
\n
";
rename
("
$SOURCE
\\
build
\\
exe
\\
$FILENAMEEXE
.exe
","
$DESTI
/
$FILENAMEEXE
.exe
");
next
;
}
}
print
"
Clean
$BUILDROOT
\n
";
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/.cache
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/.project
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/.settings
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/index.php
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/build/html
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/documents
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/document
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/conf/conf.php.mysql
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/conf/conf.php.old
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/conf/conf.php.postgres
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/conf/conf*sav*
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/custom
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/custom2
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/htdocs/theme/bureau2crea
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/test
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/Thumbs.db
$BUILDROOT
/
$PROJECT
/*/Thumbs.db
$BUILDROOT
/
$PROJECT
/*/*/Thumbs.db
$BUILDROOT
/
$PROJECT
/*/*/*/Thumbs.db
$BUILDROOT
/
$PROJECT
/*/*/*/*/Thumbs.db
`;
$ret
=
`
rm -fr
$BUILDROOT
/
$PROJECT
/CVS*
$BUILDROOT
/
$PROJECT
/*/CVS*
$BUILDROOT
/
$PROJECT
/*/*/CVS*
$BUILDROOT
/
$PROJECT
/*/*/*/CVS*
$BUILDROOT
/
$PROJECT
/*/*/*/*/CVS*
$BUILDROOT
/
$PROJECT
/*/*/*/*/*/CVS*
`;
}
# Build package for each target
#------------------------------
foreach
my
$target
(
keys
%CHOOSEDTARGET
)
{
if
(
$CHOOSEDTARGET
{
$target
}
<
0
)
{
next
;
}
print
"
\n
Build package for target
$target
\n
";
if
(
$target
eq
'
TGZ
')
{
print
"
Remove target
$FILENAMETGZ
.tgz...
\n
";
unlink
("
$DESTI
/
$FILENAMETGZ
.tgz
");
print
"
Compress
$BUILDROOT
/* into
$FILENAMETGZ
.tgz...
\n
";
$cmd
=
"
tar --exclude-vcs --exclude *.tgz --directory
\"
$BUILDROOT
\"
--mode=go-w --group=500 --owner=500 -czvf
\"
$FILENAMETGZ
.tgz
\"
.
";
$ret
=
`
$cmd
`;
if
(
$OS
=~
/windows/i
)
{
print
"
Move
$FILENAMETGZ
.tgz to
$DESTI
/
$FILENAMETGZ
.tgz
\n
";
$ret
=
`
mv "
$FILENAMETGZ
.tgz" "
$DESTI
/
$FILENAMETGZ
.tgz"
`;
}
else
{
$ret
=
`
mv "
$FILENAMETGZ
.tgz" "
$DESTI
/
$FILENAMETGZ
.tgz"
`;
}
next
;
}
if
(
$target
eq
'
ZIP
')
{
print
"
Remove target
$FILENAMEZIP
.zip...
\n
";
unlink
"
$DESTI
/
$FILENAMEZIP
.zip
";
print
"
Compress
$FILENAMEZIP
into
$FILENAMEZIP
.zip...
\n
";
print
"
Go to directory
$BUILDROOT
/
$PROJECT
\n
";
$olddir
=
getcwd
();
chdir
("
$BUILDROOT
/
$PROJECT
");
$cmd
=
"
7z a -r -tzip -mx
$BUILDROOT
/
$FILENAMEZIP
.zip *
";
print
$cmd
.
"
\n
";
$ret
=
`
$cmd
`;
chdir
("
$olddir
");
}
print
"
\n
----- Summary -----
\n
";
foreach
my
$target
(
keys
%CHOOSEDTARGET
)
{
if
(
$CHOOSEDTARGET
{
$target
}
<
0
)
{
print
"
Package
$target
not built (bad requirement).
\n
";
}
else
{
print
"
Package
$target
built successfully in
$DESTI
\n
";
}
}
print
"
Move
$FILENAMEZIP
.zip to
$DESTI
/
$FILENAMEZIP
.zip
\n
";
$ret
=
`
mv "
$BUILDROOT
/
$FILENAMEZIP
.zip" "
$DESTI
/
$FILENAMEZIP
.zip"
`;
next
;
}
if
(
$target
eq
'
EXE
')
{
print
"
Remove target
$FILENAMEEXE
.exe...
\n
";
unlink
"
$DESTI
/
$FILENAMEEXE
.exe
";
print
"
Compress into
$FILENAMEEXE
.exe by
$FILENAMEEXE
.nsi...
\n
";
$command
=
"
\"
$REQUIREMENTTARGET
{
$target
}
\"
/DMUI_VERSION_DOT=
$MAJOR
.
$MINOR
.
$BUILD
/X
\"
SetCompressor bzip2
\"
\"
$SOURCE
\\
build
\\
exe
\\
$FILENAME
.nsi
\"
";
print
"
$command
\n
";
$ret
=
`
$command
`;
print
"
Move
$FILENAMEEXE
.exe to
$DESTI
\n
";
rename
("
$SOURCE
\\
build
\\
exe
\\
$FILENAMEEXE
.exe
","
$DESTI
/
$FILENAMEEXE
.exe
");
next
;
}
}
}
print
"
\n
----- Summary -----
\n
";
foreach
my
$target
(
keys
%CHOOSEDTARGET
)
{
if
(
$CHOOSEDTARGET
{
$target
}
<
0
)
{
print
"
Package
$target
not built (bad requirement).
\n
";
}
else
{
print
"
Package
$target
built successfully in
$DESTI
\n
";
}
}
if
(
!
$batch
)
{
print
"
\n
Press key to finish...
";
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment