annotate admin/releasePKG.m @ 12669:1c92b4b26ced octave-forge

releasePKG.m: exclude .hg* files of export as of bug #45669
author jpicarbajal
date Fri, 31 Jul 2015 19:49:28 +0000
parents 89788e3f77db
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
1 %% Copyright (c) 2011 Juan Pablo Carbajal <carbajal@ifi.uzh.ch>
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
2 %%
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
3 %% This program is free software: you can redistribute it and/or modify
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
4 %% it under the terms of the GNU General Public License as published by
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
5 %% the Free Software Foundation, either version 3 of the License, or
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
6 %% any later version.
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
7 %%
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
8 %% This program is distributed in the hope that it will be useful,
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
9 %% but WITHOUT ANY WARRANTY; without even the implied warranty of
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
10 %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
11 %% GNU General Public License for more details.
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
12 %%
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
13 %% You should have received a copy of the GNU General Public License
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
14 %% along with this program. If not, see <http://www.gnu.org/licenses/>.
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
15
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
16 %% -*- texinfo -*-
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
17 %% @deftypefn {Function File} {[@var{pkgtar} @var{htmltar}] = } releasePKG (@var{pkgname})
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
18 %% @deftypefnx {Function File} {[@dots{}] = } releasePKG (@var{pkgname},@var{property},@var{value},@dots{})
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
19 %% Create files ready to release the Octave-Forge package @var{pkgname}.
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
20 %%
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
21 %% @var{property} and @var{value} are used to indicate where is the source of the
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
22 %% package.
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
23 %% @var{property} can be:
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
24 %% @table @samp
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
25 %% @item outpath
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
26 %% Is the path where the files will be created. If not provided the current working
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
27 %% directory @code{pwd()} is used.
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
28 %%
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
29 %% @item repopath
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
30 %% Is the path where the local copy of package is located. For example, to release
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
31 %% any package in @code{main} you should pass '<my-path.to-repository>/main'.
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
32 %% If not provided, the environment variable OFPATH is used (you can set it in your)
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
33 %% .octaverc variable or using @code{setenv()}). If that variable is empty, the
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
34 %% property must be provided the first time the function is called. After that
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
35 %% it creates the environment variable (but only for the current octave session)
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
36 %%
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
37 %% @item revsys
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
38 %% Revision control system. It can be @asis{"svn"} or @asis{"hg"}(default).
11212
b1a25eca2731 releasePKG: texinfo fix
carandraug
parents: 11007
diff changeset
39 %% @end table
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
40 %% @end deftypefn
11212
b1a25eca2731 releasePKG: texinfo fix
carandraug
parents: 11007
diff changeset
41
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
42 function [pkgtar htmltar] = releasePKG (pkgname, varargin)
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
43 OFPATH = getenv ('OFPATH');
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
44 use_inputP = exist ('inputParser') == 2;
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
45
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
46 if use_inputP
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
47 parser = inputParser ();
12608
89788e3f77db admin: Update releasePKG.m to use inputParser from core
jpicarbajal
parents: 12545
diff changeset
48 parser.addParamValue ('repopath', OFPATH , @ischar);
89788e3f77db admin: Update releasePKG.m to use inputParser from core
jpicarbajal
parents: 12545
diff changeset
49 parser.addParamValue ('outpath', pwd (), @ischar);
89788e3f77db admin: Update releasePKG.m to use inputParser from core
jpicarbajal
parents: 12545
diff changeset
50 parser.addParamValue ('revsys', "hg", @ischar);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
51
12608
89788e3f77db admin: Update releasePKG.m to use inputParser from core
jpicarbajal
parents: 12545
diff changeset
52 parser.parse(varargin{:});
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
53 else
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
54 opt = {varargin{1:2:end}};
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
55 val = {varargin{2:2:end}};
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
56 parser.Results.repopath = tilde_expand (OFPATH);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
57 parser.Results.outpath = pwd ();
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
58 parser.Results.revsys = "hg";
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
59
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
60 if !isempty (opt)
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
61 [tf indx] = ismember (fieldnames(parser.Results), opt);
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
62
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
63 opt(indx(tf)) = opt(indx(tf));
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
64 val(indx(tf)) = val(indx(tf));
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
65 for i=1:numel(opt)
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
66 parser.Results.(opt{i}) = val{i};
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
67 end
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
68 endif
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
69
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
70 checkrepopath(parser.Results.repopath);
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
71
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
72 end
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
73
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
74 % Export from repo
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
75 outpath = tilde_expand (checkpath (parser.Results.outpath));
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
76
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
77 pkgname_tmp = [pkgname "_tmp"];
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
78 exported = fullfile (pwd (), pkgname_tmp);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
79
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
80 % Repo path
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
81 repo_path = tilde_expand (checkpath (parser.Results.repopath));
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
82 disp(['Exporting from ' repo_path]);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
83
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
84 % Revision control system
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
85 revsys = parser.Results.revsys;
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
86
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
87 if strcmp (revsys,"svn")
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
88 export_call = ["svn export " fullfile(repo_path,pkgname) " " exported " --force"];
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
89 failed = system (export_call);
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
90 else
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
91 cdir = pwd ();
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
92 cd (fullfile (repo_path,pkgname));
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
93 export_call = sprintf ('hg archive --exclude ".hg*" %s', exported)
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
94 failed = system (export_call);
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
95 cd (cdir);
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
96 clear cdir
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
97 endif
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
98
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
99 if failed
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
100 error ("Can not export.\n");
12545
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
101 endif
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
102
12545
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
103 if isempty (OFPATH) || !strcmpi(repo_path, OFPATH)
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
104 setenv('OFPATH',parser.Results.repopath);
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
105 printf (["\nEnvironment variable OFPATH set to %s\n" ...
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
106 'add setenv("OFPATH","%s");' ...
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
107 'to your .octaverc to make it permanent.' "\n\n"], ...
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
108 parser.Results.repopath, parser.Results.repopath);
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
109 fflush (stdout);
12545
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
110 endif
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
111
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
112 printf("Exported to %s\n", exported);
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
113 fflush(stdout);
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
114
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
115 %%% Directory setup and cleanup
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
116 confirm_recursive_rmdir (0, "local");
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
117
12545
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
118 % Make sure proper structure of archived/exported package
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
119 find_call = sprintf ("find %s -name inst", exported);
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
120 [~, tmp] = system (find_call);
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
121 tmp = strsplit (tmp, filesep());
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
122
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
123 if !strcmp (tmp{end-1},pkgname_tmp)
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
124 tmp = fullfile (filesep(),tmp{2:end-1});
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
125 exported_tmp = tmpnam ();
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
126 mv_call = sprintf ("mv -f -T %s %s", tmp, exported_tmp);
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
127 system (mv_call);
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
128
12545
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
129 if !rmdir (exported, "s")
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
130 error ("Couldn't erase folder");
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
131 endif
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
132 mv_call = sprintf ("mv %s %s", exported_tmp,exported);
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
133 system (mv_call);
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
134 rmdir (exported_tmp,"s");
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
135 clear exported_tmp
8e1821d0d8a7 releasePKG: improving checks of package structure
jpicarbajal
parents: 12386
diff changeset
136 endif
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
137
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
138 % Run bootstrap if found
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
139 if has_dir ("src", exported)
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
140 ndir = fullfile (exported,"src");
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
141 if has_file ("bootstrap", ndir)
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
142 odir = pwd ();
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
143 cd (ndir);
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
144
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
145 failed = system ("./bootstrap");
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
146 if failed
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
147 cd (odir);
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
148 error ("Could run bootstrap.\n");
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
149 end
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
150
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
151 [success, msg] = rmdir ("autom4te.cache", "s");
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
152 if !success
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
153 error (msg);
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
154 endif
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
155 cd (odir);
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
156 endif
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
157 endif
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
158
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
159 % Remove devel, deprecated, .*ignore an others
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
160 to_erase = {"devel","deprecated",".svnignore",".hgignore",".hg_archival.txt"};
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
161 for idir = 1:numel(to_erase)
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
162
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
163 if has_dir (to_erase{idir}, exported)
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
164 [success, msg] = rmdir (fullfile (exported, to_erase{idir}), "s");
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
165 if !success
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
166 error (msg);
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
167 endif
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
168 elseif has_file (to_erase{idir}, exported)
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
169 delete (fullfile (exported, to_erase{idir}));
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
170 endif
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
171 endfor
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
172
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
173 % Get package version
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
174 desc_file = textread (fullfile (exported,"DESCRIPTION"),"%s");
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
175 [tf ind] = ismember ("Version:",desc_file);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
176 pkgversion = desc_file{ind+1};
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
177
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
178 % Compress package
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
179 pkgtar = sprintf ("%s-%s.tar", pkgname, pkgversion);
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
180 tar (pkgtar, pkgname_tmp);
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
181 gzip (pkgtar, outpath);
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
182 #delete (pkgtar);
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
183 pkgtar = fullfile (outpath, sprintf ("%s.gz", pkgtar));
11290
7488a8767e80 admin: releasePKG deletes .tar file
jpicarbajal
parents: 11212
diff changeset
184
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
185 printf ("Tared to %s\n", pkgtar);
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
186 fflush (stdout);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
187
12386
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
188 % Remove exported package
53edd6206d09 releasePKG: update it to work with hg repositories. Filenames are now generated using fullfile.
jpicarbajal
parents: 11486
diff changeset
189 rmdir (exported, "s");
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
190
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
191 do_doc = input ("\nCreate documentation for Octave-Forge? [y|Yes|Y] / [n|No|N] ","s");
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
192 do_doc = strcmpi (do_doc(1),'y');
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
193
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
194 if do_doc
9731
0a2f8276aa35 admin: releasePKG, ask before installing
jpicarbajal
parents: 9265
diff changeset
195 % Install package
0a2f8276aa35 admin: releasePKG, ask before installing
jpicarbajal
parents: 9265
diff changeset
196 printf("Installing...\n");
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
197 fflush (stdout);
9731
0a2f8276aa35 admin: releasePKG, ask before installing
jpicarbajal
parents: 9265
diff changeset
198 pkg ('install', pkgtar);
0a2f8276aa35 admin: releasePKG, ask before installing
jpicarbajal
parents: 9265
diff changeset
199
0a2f8276aa35 admin: releasePKG, ask before installing
jpicarbajal
parents: 9265
diff changeset
200
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
201 % Load package and generate_html
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
202 printf ("Generating html...\n");
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
203 fflush(stdout);
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
204
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
205 pkg ('load', pkgname);
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
206 pkg ('load','generate_html');
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
207 pkghtml = [pkgname '-html'];
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
208 generate_package_html (pkgname, pkghtml, 'octave-forge');
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
209
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
210 % Compress html
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
211 htmltar = sprintf ("%s-html.tar", pkgname);
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
212 tar (htmltar, pkghtml);
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
213 gzip (htmltar);
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
214 htmltar = sprintf ("%s.gz", htmltar);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
215
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
216 printf ("Documentation tared to %s\n", pkghtml);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
217 fflush(stdout);
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
218
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
219 % md5sum
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
220 printf (["\nmd5sum for " htmltar "\n"]);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
221 fflush (stdout);
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
222 disp ([md5sum(htmltar) " " htmltar]);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
223
10058
593d09df0e31 geometry: adding functions to polygon2d
jpicarbajal
parents: 9731
diff changeset
224 % Uninstall package
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
225 printf ("Uninstalling...\n");
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
226 fflush (stdout);
10058
593d09df0e31 geometry: adding functions to polygon2d
jpicarbajal
parents: 9731
diff changeset
227 pkg ('uninstall', pkgname);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
228
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
229 endif % do_doc
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
230
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
231 % md5sum
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
232 printf (["\nmd5sum for " pkgtar "\n"]);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
233 fflush (stdout);
11006
1f9272024b4f admin: releasePKG using tar and gzip packaged with octave. Increases protability.
jpicarbajal
parents: 10298
diff changeset
234 disp ([md5sum(pkgtar) " " pkgtar]);
9265
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
235
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
236
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
237 endfunction
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
238
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
239 function str = checkpath (str)
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
240 if str(end) != filesep()
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
241 str = [str filesep()];
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
242 end
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
243 endfunction
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
244
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
245 function tf = checkrepopath (str)
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
246
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
247 if !ischar (str)
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
248 tf = false;
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
249 elseif isempty (str)
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
250 error ([' If no path to the local Octave-Forge repository is given, ' ...
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
251 'the environment variable OFPATH should be set. '
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
252 'Use setenv("OFPATH", path-to-repo) to set it.'])
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
253 tf = false;
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
254 else
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
255 tf = true;
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
256 end
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
257
d96ba0c1d9fd admin: Adding releasePKG.m
jpicarbajal
parents:
diff changeset
258 endfunction
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
259
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
260 function tf = has_dir (ddir, exported)
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
261
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
262 s = dir (exported);
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
263 tf = any (cellfun (@(x) strcmpi (x,ddir), {s([s.isdir]).name}));
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
264
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
265 endfunction
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
266
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
267 function tf = has_file (dfile, ddir)
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
268
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
269 s = dir (ddir);
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
270 tf = any (cellfun (@(x) strcmpi (x,dfile), {s(![s.isdir]).name}));
12669
1c92b4b26ced releasePKG.m: exclude .hg* files of export as of bug #45669
jpicarbajal
parents: 12608
diff changeset
271
11486
afb305a7c4f1 admin: releasePKG removes unnecessary folders
jpicarbajal
parents: 11290
diff changeset
272 endfunction