File tree 2 files changed +31
-11
lines changed
2 files changed +31
-11
lines changed Original file line number Diff line number Diff line change @@ -4,18 +4,35 @@ import gleam/list
4
4
import gleam/option
5
5
import gleam/string
6
6
import go_over/advisories
7
+ import go_over/constants
7
8
import go_over/packages
8
9
import go_over/retired
9
10
import go_over/warning
10
11
import go_over/yaml
11
12
import shellout
13
+ import simplifile
12
14
13
15
pub fn main ( ) {
14
16
let assert Ok ( _ ) = yaml . start ( )
15
17
let args = shellout . arguments ( )
16
18
let skip = list . any ( args , fn ( arg ) { arg == "--skip" } )
19
+ let force = list . any ( args , fn ( arg ) { arg == "--force" } )
17
20
let pkgs = packages . read_manifest ( "./manifest.toml" )
18
21
22
+ case force && skip {
23
+ True -> {
24
+ shellout . style ( "Cannot specify both `--skip` & `--force`" , with : shellout . color ( [ "red" ] ) , custom : [ ] )
25
+ |> io . print
26
+ shellout . exit ( 1 )
27
+ }
28
+ _ -> Nil
29
+ }
30
+
31
+ let _ = case force {
32
+ True -> simplifile . delete ( constants . go_over_path ( ) )
33
+ _ -> Ok ( Nil )
34
+ }
35
+
19
36
let vulnerable_packages =
20
37
advisories . check_for_advisories ( pkgs , ! skip )
21
38
|> list . map ( fn ( p ) {
@@ -29,16 +46,15 @@ pub fn main() {
29
46
_ ->
30
47
pkgs
31
48
|> list . map ( fn ( pkg ) {
32
- case retired . check_retired ( pkg ) {
49
+ case retired . check_retired ( pkg , ! skip ) {
33
50
option . Some ( ret ) -> option . Some ( # ( pkg , ret ) )
34
51
option . None -> option . None
35
52
}
36
53
} )
37
54
|> option . values
38
55
|> list . map ( fn ( p ) {
39
- case p {
40
- # ( pkg , ret ) -> warning . retired_to_warning ( pkg , ret )
41
- }
56
+ let # ( pkg , ret ) = p
57
+ warning . retired_to_warning ( pkg , ret )
42
58
} )
43
59
}
44
60
Original file line number Diff line number Diff line change @@ -47,13 +47,17 @@ fn pull_retired(pkg: packages.Package) {
47
47
Nil
48
48
}
49
49
50
- pub fn check_retired ( pkg : packages . Package ) {
51
- pkg
52
- |> path ( )
53
- |> cache . pull_if_not_cached ( constants . hour , fn ( ) {
54
- let _ = simplifile . delete ( path ( pkg ) )
55
- pull_retired ( pkg )
56
- } )
50
+ pub fn check_retired ( pkg : packages . Package , pull : Bool ) {
51
+ case pull {
52
+ True ->
53
+ pkg
54
+ |> path ( )
55
+ |> cache . pull_if_not_cached ( constants . hour , fn ( ) {
56
+ let _ = simplifile . delete ( path ( pkg ) )
57
+ pull_retired ( pkg )
58
+ } )
59
+ False -> Nil
60
+ }
57
61
58
62
let assert Ok ( resp ) =
59
63
pkg
You can’t perform that action at this time.
0 commit comments