@ -8,6 +8,29 @@ pub fn inssort(noconfirm: bool, as_dep: bool, pkgs: Vec<String>) {
let re = Regex ::new ( r"(\S+)((?:>=|<=)\S+$)" ) . unwrap ( ) ;
let reg = Regex ::new ( r"((?:>=|<=)\S+$)" ) . unwrap ( ) ;
for pkg in pkgs {
match pkg . contains ( "/" ) {
true = > {
match pkg . split ( "/" ) . collect ::< Vec < & str > > ( ) [ 0 ] = = "aur" {
true = > {
aur . push ( pkg . split ( "/" ) . collect ::< Vec < & str > > ( ) [ 1 ] . to_string ( ) ) ;
}
false = > {
let out = Command ::new ( "bash" )
. arg ( "-c" )
. arg ( format! ( "pacman -Sl {} | grep {}" , pkg . split ( "/" ) . collect ::< Vec < & str > > ( ) [ 0 ] , pkg . split ( "/" ) . collect ::< Vec < & str > > ( ) [ 1 ] ) )
. stdout ( Stdio ::null ( ) )
. status ( )
. expect ( "Something has gone wrong." ) ;
match out . code ( ) {
Some ( 0 ) = > repo . push ( reg . replace_all ( & pkg , "" ) . to_string ( ) ) ,
Some ( 1 ) = > err_unrec ( format! ( "Package {} not found in repository {}" , pkg . split ( "/" ) . collect ::< Vec < & str > > ( ) [ 1 ] , pkg . split ( "/" ) . collect ::< Vec < & str > > ( ) [ 0 ] ) ) ,
Some ( _ ) = > err_unrec ( format! ( "Something has gone terribly wrong" ) ) ,
None = > err_unrec ( format! ( "Process terminated" ) ) ,
}
}
}
}
false = > {
let caps = re . captures ( & pkg ) ;
match caps {
Some ( _ ) = > {
@ -43,6 +66,8 @@ pub fn inssort(noconfirm: bool, as_dep: bool, pkgs: Vec<String>) {
}
}
}
}
}
if as_dep = = false {
if repo . len ( ) ! = 0 {
sec ( format! ( "Installing repo packages: {}" , & repo . join ( ", " ) ) ) ;