@@ -8,7 +8,7 @@ use std::io::BufReader;
8
8
use std:: path:: { Path , PathBuf } ;
9
9
use std:: fs;
10
10
11
- use cargo:: core:: Package ;
11
+ use cargo:: core:: { Package , TargetKind } ;
12
12
use rustc_serialize:: json:: { Json , ToJson } ;
13
13
use slug:: slugify;
14
14
use hyper:: client:: Client ;
@@ -33,6 +33,10 @@ pub fn add_package_into_database(conn: &Connection,
33
33
let rustdoc = get_rustdoc ( & pkg) . unwrap_or ( None ) ;
34
34
let readme = get_readme ( & pkg) . unwrap_or ( None ) ;
35
35
let ( release_time, yanked, downloads) = try!( get_release_time_yanked_downloads ( & pkg) ) ;
36
+ let is_library = match pkg. targets ( ) [ 0 ] . kind ( ) {
37
+ & TargetKind :: Lib ( _) => true ,
38
+ _ => false ,
39
+ } ;
36
40
37
41
let release_id: i32 = {
38
42
let rows = try!( conn. query ( "SELECT id FROM releases WHERE crate_id = $1 AND version = $2" ,
@@ -45,10 +49,12 @@ pub fn add_package_into_database(conn: &Connection,
45
49
rustdoc_status, test_status, license, repository_url, \
46
50
homepage_url, description, description_long, readme, \
47
51
authors, keywords, have_examples, downloads, files, \
48
- doc_targets \
52
+ doc_targets, is_library \
49
53
) \
50
54
VALUES ( $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, \
51
- $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21 ) \
55
+ $11, $12, $13, $14, $15, $16, $17, $18, $19, \
56
+ $20, $21, $22 \
57
+ ) \
52
58
RETURNING id",
53
59
& [ & crate_id,
54
60
& format ! ( "{}" , pkg. manifest( ) . version( ) ) ,
@@ -70,7 +76,8 @@ pub fn add_package_into_database(conn: &Connection,
70
76
& res. have_examples ,
71
77
& downloads,
72
78
& files,
73
- & doc_targets. to_json ( ) ] ) ) ;
79
+ & doc_targets. to_json ( ) ,
80
+ & is_library] ) ) ;
74
81
// return id
75
82
rows. get ( 0 ) . get ( 0 )
76
83
@@ -80,7 +87,7 @@ pub fn add_package_into_database(conn: &Connection,
80
87
$8, test_status = $9, license = $10, repository_url = $11, \
81
88
homepage_url = $12, description = $13, description_long = $14, \
82
89
readme = $15, authors = $16, keywords = $17, have_examples = $18, \
83
- downloads = $19, files = $20, doc_targets = $21 \
90
+ downloads = $19, files = $20, doc_targets = $21, is_library = $22 \
84
91
WHERE crate_id = $1 AND version = $2",
85
92
& [ & crate_id,
86
93
& format ! ( "{}" , pkg. manifest( ) . version( ) ) ,
@@ -102,7 +109,8 @@ pub fn add_package_into_database(conn: &Connection,
102
109
& res. have_examples ,
103
110
& downloads,
104
111
& files,
105
- & doc_targets. to_json ( ) ] ) ) ;
112
+ & doc_targets. to_json ( ) ,
113
+ & is_library] ) ) ;
106
114
rows. get ( 0 ) . get ( 0 )
107
115
}
108
116
} ;
0 commit comments