import from svn
[unitool.git] / unitool / Install.java
blobeb89cbffe8baff3cf6a377f184b6eb304cbfbfbf
2 package org.de.metux.unitool.unitool;
4 import org.de.metux.util.*;
5 import org.de.metux.unitool.base.*;
6 import java.io.File;
8 public class Install extends Command
10 public Install(String[] args)
12 super(args);
15 public boolean install_resource()
16 throws EParameterMissing, EParameterInvalid
18 String source = get_mandatory("source-filename");
19 return false;
22 private String abs_filename(String filename)
23 throws EParameterInvalid
25 String destdir = get_str("install-root");
26 if (destdir==null)
27 return filename;
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;
46 if (libver!=null)
47 libname+="."+libver;
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);
58 return true;
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);
83 return true;
86 public boolean install_directory()
87 throws EParameterMissing, EInstallFailed, EParameterInvalid
89 String dirname = get_mandatory("name");
90 String absdirname = abs_filename(dirname);
91 String mode;
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");
102 return true;
105 public boolean run()
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);