2 package org
.de
.metux
.unitool
.unitool
;
4 import org
.de
.metux
.util
.*;
5 import org
.de
.metux
.unitool
.base
.*;
8 public class Install
extends Command
10 public Install(String
[] args
)
15 public boolean install_resource()
16 throws EParameterMissing
, EParameterInvalid
18 String source
= get_mandatory("source-filename");
22 private String
abs_filename(String filename
)
23 throws EParameterInvalid
25 String destdir
= get_str("install-root");
29 return destdir
+"/"+filename
;
32 public boolean install_shared_library()
33 throws EParameterMissing
, EInstallFailed
, EParameterInvalid
35 String libname
= get_mandatory("name");
36 String dir
= abs_filename(get_mandatory("destination-dir"));
37 String mode
= get_str("mode");
38 String srcdir
= get_str("source-dir");
39 String libver
= get_str("shlib-version");
41 if (mode
==null) mode
= "u=rwx,go=rx";
43 String src
= ((srcdir
==null)?
"":srcdir
+"/")+libname
;
44 String dest
= dir
+"/"+libname
;
49 if (!FileOps
.mkdir(dir
))
50 throw new EInstallFailed("could not create directory: "+dir
);
52 if (!FileOps
.cp(src
,dir
))
53 throw new EInstallFailed("could not copy "+src
+" to "+dir
);
55 if (!FileOps
.chmod(dest
,mode
))
56 throw new EInstallFailed("could not chmod:"+dest
);
61 public boolean install_binary_executable()
62 throws EParameterMissing
, EInstallFailed
, EParameterInvalid
64 String name
= get_mandatory("name");
65 String dir
= abs_filename(get_mandatory("destination-dir"));
66 String mode
= get_str("mode");
67 String srcdir
= get_str("source-dir");
69 if (mode
==null) mode
= "u=rwx,go=rx";
71 String src
= ((srcdir
==null)?
"":srcdir
+"/")+name
;
72 String dest
= dir
+"/"+name
;
74 if (!FileOps
.mkdir(dir
))
75 throw new EInstallFailed("could not create directory");
77 if (!FileOps
.cp(src
,dir
))
78 throw new EInstallFailed("could not copy file");
80 if (!FileOps
.chmod(dest
,mode
))
81 throw new EInstallFailed("could not chmod: "+dest
);
86 public boolean install_directory()
87 throws EParameterMissing
, EInstallFailed
, EParameterInvalid
89 String dirname
= get_mandatory("name");
90 String absdirname
= abs_filename(dirname
);
93 if (!FileOps
.mkdir(absdirname
))
94 throw new EInstallFailed("could not create directory "+absdirname
);
96 if ((mode
=get_str("mode"))!=null)
98 if (!FileOps
.chmod(absdirname
,mode
))
99 throw new EInstallFailed("chmod failed");
106 throws EParameterMissing
, EParameterInvalid
, EInstallFailed
108 String filetype
= get_mandatory("type");
110 if (filetype
.equals("directory"))
111 return install_directory();
113 if (filetype
.equals("resource"))
114 return install_resource();
116 // if (filetype.equals("manpage"))
117 // return install_manpage();
119 if (filetype
.equals("binary-executable"))
120 return install_binary_executable();
122 if (filetype
.equals("shared-library") ||
123 filetype
.equals("shlib"))
124 return install_shared_library();
126 // if (filetype.equals("static-library"))
127 // return install_static_library();
129 // if (filetype.equals("header"))
130 // return install_header();
132 // if (filetype.equals("configfile"))
133 // return install_configfile();
135 throw new EInstallFailed("unsupported filetype: "+filetype
);