Commit 2c8a7733 authored by Wohlgemuth, Jason's avatar Wohlgemuth, Jason
Browse files

feat: Make checksum return an option

parent ac5893cf
Loading
Loading
Loading
Loading
Loading
+172 −155
Original line number Diff line number Diff line
@@ -278,15 +278,15 @@ FN:119,Config::get_environment_variables
FN:139,Config::get_inputs
FN:169,Config::get_module_list
FN:180,Config::prepare_modules
FN:404,Config::read
FN:428,Config::read_json
FN:449,Config::read_yaml
FN:469,Config::run_workflow
FN:559,Config::set_environment_variables
FN:577,Config::verify_requirements
FN:597,Config::verify_resources
FN:600,Config::with_options
FN:606,Extension::from_string
FN:407,Config::read
FN:431,Config::read_json
FN:452,Config::read_yaml
FN:472,Config::run_workflow
FN:562,Config::set_environment_variables
FN:580,Config::verify_requirements
FN:600,Config::verify_resources
FN:603,Config::with_options
FN:609,Extension::from_string
FNF:13
FNDA:0,Config::get_environment_variables
FNDA:1,Config::get_inputs
@@ -355,214 +355,216 @@ DA:206,0
DA:207,0
DA:208,0
DA:209,0
DA:211,0
DA:210,0
DA:212,0
DA:213,0
DA:214,0
DA:215,0
DA:216,0
DA:217,0
DA:218,0
DA:223,0
DA:225,0
DA:230,0
DA:236,0
DA:238,0
DA:219,0
DA:221,0
DA:226,0
DA:228,0
DA:233,0
DA:239,0
DA:241,0
DA:246,0
DA:248,0
DA:252,0
DA:244,0
DA:249,0
DA:251,0
DA:255,0
DA:258,0
DA:260,0
DA:262,0
DA:261,0
DA:263,0
DA:264,0
DA:265,0
DA:266,0
DA:267,0
DA:268,0
DA:272,0
DA:273,0
DA:274,0
DA:270,0
DA:271,0
DA:275,0
DA:276,0
DA:277,0
DA:279,0
DA:280,0
DA:281,0
DA:282,0
DA:283,0
DA:284,0
DA:285,0
DA:286,0
DA:287,0
DA:288,0
DA:289,0
DA:294,0
DA:296,0
DA:298,0
DA:300,0
DA:291,0
DA:292,0
DA:297,0
DA:299,0
DA:301,0
DA:305,0
DA:306,0
DA:307,0
DA:303,0
DA:304,0
DA:308,0
DA:309,0
DA:310,0
DA:312,0
DA:313,0
DA:315,0
DA:316,0
DA:317,0
DA:318,0
DA:319,0
DA:320,0
DA:321,0
DA:323,0
DA:324,0
DA:325,0
DA:327,0
DA:328,0
DA:330,0
DA:331,0
DA:333,0
DA:334,0
DA:336,0
DA:337,0
DA:338,0
DA:340,0
DA:341,0
DA:343,0
DA:344,0
DA:345,0
DA:346,0
DA:347,0
DA:348,0
DA:349,0
DA:359,0
DA:360,0
DA:361,0
DA:350,0
DA:352,0
DA:362,0
DA:363,0
DA:364,0
DA:368,0
DA:370,0
DA:372,0
DA:365,0
DA:367,0
DA:371,0
DA:373,0
DA:381,0
DA:382,0
DA:383,0
DA:375,0
DA:376,0
DA:384,0
DA:385,0
DA:386,0
DA:391,0
DA:392,0
DA:393,0
DA:387,0
DA:389,0
DA:394,0
DA:395,0
DA:396,0
DA:398,0
DA:400,0
DA:402,0
DA:404,3
DA:405,6
DA:406,6
DA:399,0
DA:401,0
DA:403,0
DA:405,0
DA:407,3
DA:408,0
DA:410,2
DA:411,1
DA:412,0
DA:416,6
DA:417,3
DA:419,0
DA:420,0
DA:428,1
DA:429,2
DA:430,2
DA:432,0
DA:433,0
DA:436,5
DA:437,4
DA:438,8
DA:439,0
DA:408,6
DA:409,6
DA:410,3
DA:411,0
DA:413,2
DA:414,1
DA:415,0
DA:419,6
DA:420,3
DA:422,0
DA:423,0
DA:431,1
DA:432,2
DA:433,5
DA:435,0
DA:436,0
DA:439,8
DA:440,4
DA:441,8
DA:442,4
DA:449,1
DA:450,2
DA:451,1
DA:453,0
DA:454,0
DA:457,2
DA:458,1
DA:459,2
DA:460,0
DA:442,0
DA:444,8
DA:445,4
DA:452,1
DA:453,2
DA:454,1
DA:456,0
DA:457,0
DA:460,2
DA:461,1
DA:462,2
DA:463,1
DA:469,0
DA:470,0
DA:471,0
DA:463,0
DA:465,2
DA:466,1
DA:472,0
DA:473,0
DA:474,0
DA:475,0
DA:476,0
DA:477,0
DA:478,0
DA:480,0
DA:481,0
DA:482,0
DA:483,0
DA:484,0
DA:485,0
DA:486,0
DA:487,0
DA:489,0
DA:492,0
DA:495,0
DA:497,0
DA:498,0
DA:499,0
DA:500,0
DA:501,0
DA:502,0
DA:504,0
DA:505,0
DA:506,0
DA:507,0
DA:508,0
DA:509,0
DA:510,0
DA:511,0
DA:512,0
DA:514,0
DA:517,0
DA:521,0
DA:522,0
DA:523,0
DA:520,0
DA:524,0
DA:525,0
DA:526,0
DA:528,0
DA:529,0
DA:530,0
DA:531,0
DA:532,0
DA:533,0
DA:534,0
DA:535,0
DA:537,0
DA:538,0
DA:539,0
DA:540,0
DA:541,0
DA:542,0
DA:543,0
DA:544,0
DA:545,0
DA:547,0
DA:550,0
DA:553,0
DA:555,0
DA:559,0
DA:560,0
DA:561,0
DA:556,0
DA:558,0
DA:562,0
DA:563,0
DA:564,0
DA:569,0
DA:570,0
DA:571,0
DA:577,0
DA:578,0
DA:579,0
DA:565,0
DA:566,0
DA:567,0
DA:572,0
DA:573,0
DA:574,0
DA:580,0
DA:581,0
DA:582,0
DA:583,0
DA:584,0
DA:588,0
DA:585,0
DA:586,0
DA:587,0
DA:591,0
DA:597,0
DA:598,0
DA:594,0
DA:600,0
DA:601,0
DA:602,0
DA:606,3
DA:607,6
DA:608,6
DA:603,0
DA:604,0
DA:605,0
DA:609,3
DA:610,0
LF:261
DA:610,6
DA:611,6
DA:612,3
DA:613,0
LF:263
LH:41
end_of_record
TN:
@@ -673,7 +675,7 @@ FNDA:1,Script::expand_arguments_from
FNDA:0,Script::from_module
FNDA:1,Script::from_path
FNDA:1,Script::from_template
FNDA:2,Script::get_command
FNDA:1,Script::get_command
FNDA:1,Script::get_arguments
FNDA:0,Script::maybe_create_virtual_environment
FNDA:1,Script::maybe_git_clone
@@ -696,8 +698,8 @@ DA:301,2
DA:302,1
DA:303,2
DA:304,3
DA:306,4
DA:307,2
DA:306,2
DA:307,1
DA:310,0
DA:311,0
DA:316,2
@@ -750,7 +752,7 @@ DA:391,0
DA:393,0
DA:397,1
DA:398,1
DA:399,4
DA:399,2
DA:400,1
DA:401,2
DA:402,0
@@ -851,15 +853,15 @@ DA:644,1
DA:645,1
DA:646,1
DA:648,1
DA:650,2
DA:651,2
DA:650,1
DA:651,1
DA:652,1
DA:653,2
DA:655,2
DA:653,1
DA:655,1
DA:656,2
DA:657,2
DA:657,1
DA:660,1
DA:661,2
DA:661,1
DA:662,1
DA:663,1
DA:664,1
@@ -869,7 +871,7 @@ DA:668,0
DA:669,0
DA:672,2
DA:673,1
DA:675,2
DA:675,1
DA:677,1
DA:678,1
DA:679,1
@@ -924,17 +926,17 @@ DA:765,2
DA:766,3
DA:767,2
DA:768,1
DA:769,14
DA:769,9
DA:770,2
DA:771,2
DA:771,1
DA:772,1
DA:773,2
DA:774,2
DA:779,3
DA:780,1
DA:773,1
DA:774,1
DA:779,2
DA:780,2
DA:782,0
DA:783,0
DA:786,1
DA:786,2
DA:787,1
DA:788,2
DA:789,2
@@ -996,7 +998,7 @@ DA:920,0
DA:921,0
DA:922,0
DA:932,1
DA:934,2
DA:934,1
DA:941,1
DA:942,4
DA:943,3
@@ -1014,9 +1016,9 @@ DA:982,0
DA:984,0
DA:1013,1
DA:1014,2
DA:1015,2
DA:1015,1
DA:1016,0
DA:1018,6
DA:1018,3
DA:1019,1
DA:1023,1
DA:1024,1
@@ -1055,7 +1057,12 @@ FN:94,add_forward_slash
FN:101,download_binary
FN:102,download_binary::download
FN:148,get_conda_environment_name
FNF:21
FN:172,checksum
FN:184,get_children
FN:202,extension
FN:206,is_stdin_piped
FN:214,is_stdout_piped
FNF:26
FNDA:0,Label::dry_run
FNDA:0,Label::invalid
FNDA:0,Label::fmt_invalid
@@ -1065,7 +1072,7 @@ FNDA:0,Label::found
FNDA:0,Label::not_found
FNDA:0,Label::fmt_not_found
FNDA:1,Label::output
FNDA:1,Label::fmt_output
FNDA:2,Label::fmt_output
FNDA:0,Label::pass
FNDA:0,Label::read
FNDA:0,Label::rejected
@@ -1077,6 +1084,11 @@ FNDA:1,add_forward_slash
FNDA:0,download_binary
FNDA:0,download_binary::download
FNDA:1,get_conda_environment_name
FNDA:0,checksum
FNDA:1,get_children
FNDA:3,extension
FNDA:0,is_stdin_piped
FNDA:0,is_stdout_piped
DA:25,0
DA:26,0
DA:27,0
@@ -1100,8 +1112,8 @@ DA:51,0
DA:52,0
DA:54,1
DA:55,1
DA:57,1
DA:58,1
DA:57,2
DA:58,2
DA:59,2
DA:61,0
DA:62,0
@@ -1154,6 +1166,11 @@ DA:152,6
DA:164,1
DA:166,0
DA:168,1
DA:172,0
DA:173,0
DA:174,0
DA:175,0
DA:177,0
DA:184,1
DA:185,1
DA:186,4
@@ -1176,20 +1193,20 @@ DA:234,2
DA:235,1
DA:236,1
DA:238,2
DA:251,2
DA:252,2
DA:251,3
DA:252,3
DA:253,6
DA:254,3
DA:255,6
DA:256,7
DA:258,1
DA:259,2
DA:260,1
DA:256,5
DA:258,0
DA:259,0
DA:260,0
DA:263,1
DA:265,1
DA:266,3
DA:268,1
DA:269,4
LF:113
LH:49
LF:118
LH:46
end_of_record
+4 −1
Original line number Diff line number Diff line
@@ -205,7 +205,10 @@ impl Config {
                            };
                            if !options.skip_verify_checksum.unwrap_or_default() {
                                let calculated_checksum = match output.clone() {
                                    | Ok(path) => util::checksum(path),
                                    | Ok(path) => match util::checksum(path) {
                                        | Some(value) => value,
                                        | None => "".to_string(),
                                    },
                                    | _ => "".to_string(),
                                };
                                match checksum {
+0 −15
Original line number Diff line number Diff line
@@ -147,21 +147,6 @@ fn test_details() {
    assert_eq!(results.len(), 5);
}
#[test]
fn test_checksum() {
    let result = checksum(PathBuf::from("../LICENSE"));
    if cfg!(target_os = "windows") {
        assert_eq!(result.len(), 64);
    } else {
        let expected = "debe0f22e2b4e8dffd88d4bbe8b15cca98c5950b1b857d1747f211465fba972e";
        assert_eq!(result, expected);
    }
}
#[test]
#[should_panic]
fn test_checksum_panic() {
    assert_eq!(checksum(PathBuf::from("/path/does/not/exist.txt")), "");
}
#[test]
fn test_get_children() {
    assert_eq!(get_children("../../does/not/exist".to_string()), Vec::<String>::new());
    match PathBuf::from("/root/dev/command").try_exists() {
+3 −3
Original line number Diff line number Diff line
@@ -169,12 +169,12 @@ pub fn get_conda_environment_name(path: PathBuf) -> Option<String> {
    }
}
/// Get SHA256 hash of a file
pub fn checksum(path: PathBuf) -> String {
pub fn checksum(path: PathBuf) -> Option<String> {
    if let Ok(content) = read_file(path) {
        let hash = Sha256::digest(content);
        format!("{hash:x}")
        Some(format!("{hash:x}"))
    } else {
        unreachable!()
        None
    }
}
/// Get list of directory children