Skip to content
Snippets Groups Projects
Commit bdbb27f0 authored by Fredrik Hübinette (Hubbe)'s avatar Fredrik Hübinette (Hubbe)
Browse files

better srcdir handling (I hope)

Rev: bin/export.pike:1.27
parent 5aa766c8
No related branches found
No related tags found
No related merge requests found
#!/usr/local/bin/pike
/* $Id: export.pike,v 1.26 1999/08/30 21:49:25 hubbe Exp $ */
/* $Id: export.pike,v 1.27 1999/09/06 11:01:45 hubbe Exp $ */
#include <simulate.h>
import Stdio;
......@@ -8,6 +8,16 @@ import Stdio;
multiset except_modules =(<>);
string vpath;
string dirname(string dir)
{
array tmp=dir/"/";
if(tmp[-1]=="") tmp=tmp[..sizeof(tmp)-2];
tmp=tmp[..sizeof(tmp)-2];
if(!sizeof(tmp)) return "/";
return tmp*"/";
}
string *get_files(string path)
{
string *files,tmp,*ret;
......@@ -61,7 +71,7 @@ void fix_configure(string dir)
string getversion()
{
// werror("FNORD:%O\n",getcwd());
string s=Stdio.read_file("pike/src/version.h");
string s=Stdio.read_file(pike_base_name+"/src/version.h");
int maj, min, build;
......@@ -79,19 +89,22 @@ void bump_version()
{
werror("Bumping release number.\n");
Process.create_process(({ "cvs", "update", "version.h" }),
([ "cwd":"pike/src" ]))->wait();
([ "cwd":pike_base_name+"/src" ]))->wait();
string s=Stdio.read_file("pike/src/version.h");
string s=Stdio.read_file(pike_base_name+"/src/version.h");
sscanf(s,"%s PIKE_BUILD_VERSION %d%s",string pre, int rel, string post);
rel++;
Stdio.File("pike/src/version.h", "wct")->
Stdio.File(pike_base_name+"/src/version.h", "wct")->
write(pre+" PIKE_BUILD_VERSION "+rel+post);
Process.create_process(({ "cvs", "commit", "-m",
"release number bumped to "+rel+" by export.pike",
"version.h" }),
([ "cwd":"pike/src" ]))->wait();
([ "cwd":pike_base_name+"/src" ]))->wait();
}
string pike_base_name;
string srcdir;
int rebuild;
int main(int argc, string *argv)
{
......@@ -100,20 +113,57 @@ int main(int argc, string *argv)
string *files;
object cvs;
tmp=reverse(argv[0]/"/");
except_modules=mklist(argv[1..]);
e=search(tmp,"pike");
if(e==-1)
foreach(Getopt.find_all_options(argv,aggregate(
({ "srcdir", "--srcdir", Getopt.HAS_ARG }),
({ "rebuild","--rebuild", Getopt.NO_ARG }),
)),array opt)
{
switch(opt[0])
{
case "srcdir":
srcdir=opt[1];
if(basename(srcdir)=="src")
srcdir=dirname(srcdir);
pike_base_name=basename(srcdir);
cd(dirname(srcdir));
break;
case "rebuild":
rebuild=1;
}
}
argv=Getopt.get_args(argv);
if(!srcdir)
{
tmp=reverse(argv[0]/"/");
except_modules=mklist(argv[1..]);
e=search(tmp,"pike");
if(e==-1)
{
werror("Couldn't find Pike source dir.\n");
werror("Use export.pike --srcdir=<dir> <except modules>.\n");
exit(1);
}
tmp=reverse(tmp[e+1..]);
cd(sizeof(tmp)<1 ? tmp*"/" : "/");
werror("Sourcedir = "+tmp*"/"+"/pike\n");
pike_base_name="pike";
}
if(rebuild)
{
werror("Couldn't find Pike source dir.\n");
werror("Use /full/path/export.pike <except modules>.\n");
werror("Not yet finished!\n");
exit(1);
object autoconfig=Process.create_process(({"./run_autoconfig"}),
(["cwd":pike_base_name]));
/* make depend... */
/* And other things... */
}
tmp=reverse(tmp[e+1..]);
cd(sizeof(tmp)<1 ? tmp*"/" : "/");
werror("Sourcedir = "+tmp*"/"+"/pike\n");
if(file_stat("pike/CVS"))
if(file_stat(pike_base_name+"/CVS"))
{
bump_version();
......@@ -122,15 +172,15 @@ int main(int argc, string *argv)
werror("Creating tag "+tag+" in the background.\n");
cvs=Process.create_process(({"cvs","tag","-R","-F",tag}),
(["cwd":"pike"]));
(["cwd":pike_base_name]));
}else{
vpath=replace(replace(getversion()," ","-"),"-release-",".");
}
fix_configure("pike/src");
fix_configure(pike_base_name+"/src");
foreach(get_dir("pike/src/modules") - ({"CVS","RCS"}), tmp)
if(file_size("pike/src/modules/"+tmp) == -2)
foreach(get_dir(pike_base_name+"/src/modules") - ({"CVS","RCS"}), tmp)
if(file_size(pike_base_name+"/src/modules/"+tmp) == -2)
fix_configure("modules/"+tmp);
werror("vpath = %s\n",vpath);
......@@ -144,7 +194,7 @@ int main(int argc, string *argv)
werror("Creating "+vpath+"-indigo.tar.gz:\n");
object o=Stdio.File();
spawn("tar cvf - "+files*" ",0,o->pipe(Stdio.PROP_IPC));
spawn("gzip -9",o,Stdio.File("pike/"+vpath+"-indigo.tar.gz","wct"))->wait();
spawn("gzip -9",o,Stdio.File(pike_base_name+"/"+vpath+"-indigo.tar.gz","wct"))->wait();
rm(vpath);
werror("Done.\n");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment