@@ -7,6 +7,7 @@ importPackage(Packages.groovy.yaml);
7
7
importPackage ( Packages . java . nio . file ) ;
8
8
importPackage ( Packages . java . io ) ;
9
9
importPackage ( Packages . org . yaml . snakeyaml ) ;
10
+ importPackage ( Packages . javax . swing ) ;
10
11
11
12
saw . setProperty ( Tablesaw . PROP_MULTI_THREAD_OUTPUT , Tablesaw . PROP_VALUE_ON ) ;
12
13
@@ -76,17 +77,17 @@ function doRPM(rule)
76
77
rpmBuilder . setPrefixes ( rpmBaseInstallDir ) ;
77
78
rpmBuilder . addDependencyMore ( "jre" , yamlMap . get ( "min_java_version" ) ) ;
78
79
79
- rpmBuilder . addFile ( "$ rpmBaseInstallDir/bin/topic-monitor" , new File ( "target/stork/bin/topic-monitor" ) , 0755 ) ;
80
+ rpmBuilder . addFile ( ` ${ rpmBaseInstallDir } /bin/topic-monitor` , new File ( "target/stork/bin/topic-monitor" ) , 0755 ) ;
80
81
81
- rpmBuilder . addFile ( "$ rpmBaseInstallDir/conf/application.conf" ,
82
+ rpmBuilder . addFile ( ` ${ rpmBaseInstallDir } /conf/application.conf` ,
82
83
new File ( "target/stork/conf/application.conf" ) , 0644 , new Directive ( Directive . RPMFILE_CONFIG | Directive . RPMFILE_NOREPLACE ) ) ;
83
- rpmBuilder . addFile ( "$ rpmBaseInstallDir/conf/logback.xml" ,
84
+ rpmBuilder . addFile ( ` ${ rpmBaseInstallDir } /conf/logback.xml` ,
84
85
new File ( "target/stork/conf/logback.xml" ) , 0644 , new Directive ( Directive . RPMFILE_CONFIG | Directive . RPMFILE_NOREPLACE ) ) ;
85
- rpmBuilder . addFile ( "$ rpmBaseInstallDir/conf/metrics4j.conf" ,
86
+ rpmBuilder . addFile ( ` ${ rpmBaseInstallDir } /conf/metrics4j.conf` ,
86
87
new File ( "target/stork/conf/metrics4j.conf" ) , 0644 , new Directive ( Directive . RPMFILE_CONFIG | Directive . RPMFILE_NOREPLACE ) ) ;
87
88
88
- addFileSetToRPM ( rpmBuilder , "$ rpmBaseInstallDir/lib" , new RegExFileSet ( "target/stork/lib" , ".*\\.jar" ) ) ;
89
- addFileSetToRPM ( rpmBuilder , "$ rpmBaseInstallDir/share" , new RegExFileSet ( "target/stork/share" , ".*" ) . recurse ( ) ) ;
89
+ addFileSetToRPM ( rpmBuilder , ` ${ rpmBaseInstallDir } /lib` , new RegExFileSet ( "target/stork/lib" , ".*\\.jar" ) ) ;
90
+ addFileSetToRPM ( rpmBuilder , ` ${ rpmBaseInstallDir } /share` , new RegExFileSet ( "target/stork/share" , ".*" ) . recurse ( ) ) ;
90
91
91
92
print ( `Building RPM ${ rule . getTarget ( ) } ` ) ;
92
93
outputFile = new FileOutputStream ( rule . getTarget ( ) ) ;
@@ -110,7 +111,31 @@ debRule = new SimpleRule("package-deb").setDescription("Build Deb Package")
110
111
111
112
function doDeb ( rule )
112
113
{
114
+ //Prompt the user for the sudo password
115
+ //TODO: package using jdeb
116
+ var jpf = new JPasswordField ( ) ;
117
+ var password = saw . getProperty ( "sudo" ) ;
113
118
119
+ if ( password == null )
120
+ {
121
+ var resp = JOptionPane . showConfirmDialog ( null ,
122
+ jpf , "Enter sudo password:" ,
123
+ JOptionPane . OK_CANCEL_OPTION ) ;
124
+
125
+ if ( resp == 0 )
126
+ password = jpf . getText ( ) ;
127
+ }
128
+
129
+ if ( password != null )
130
+ {
131
+ var sudo = saw . createAsyncProcess ( rpmDir , `sudo -S alien --scripts --bump=0 --to-deb ${ rpmFile } ` ) ;
132
+ sudo . run ( ) ;
133
+ //pass the password to the process on stdin
134
+ sudo . sendMessage ( password + "\n" ) ;
135
+ sudo . waitForProcess ( ) ;
136
+ if ( sudo . getExitCode ( ) != 0 )
137
+ throw new TablesawException ( "Unable to run alien application" ) ;
138
+ }
114
139
}
115
140
116
141
0 commit comments