okami.mom/albedo
git clone https://git.nkp.pet/okami.mom/albedo
03610e4
main
1- module ( albedo_skills_test_support ). 2- export ([ fixture / 0 , write / 3 , replace_with_symlink / 3 , exists / 2 , chmod / 3 , cleanup / 1 ]). 3 4fixture () -> 5Root = filename : join ( os : getenv ( "TMPDIR" , "/tmp" ), "albedo-skills-" ++ integer_to_list ( erlang : system_time ( nanosecond )) ++ "-" ++ integer_to_list ( erlang : unique_integer ([ positive ]))), 6Workspace = filename : join ( Root , "workspace" ), 7Home = filename : join ( Root , "home" ), 8ok = filelib : ensure_dir ( filename : join ( Workspace , "placeholder" )), 9ok = filelib : ensure_dir ( filename : join ( Home , "placeholder" )), 10{ bin ( Root ), bin ( Workspace ), bin ( Home )}. 11 12write ( Base0 , Relative0 , Content ) -> 13Path = filename : join ( text ( Base0 ), text ( Relative0 )), 14ok = filelib : ensure_dir ( Path ), 15ok = file : write_file ( Path , Content ), 16bin ( Path ). 17 18replace_with_symlink ( Base0 , TargetRelative0 , LinkRelative0 ) -> 19Base = text ( Base0 ), 20Target = filename : join ( Base , text ( TargetRelative0 )), 21Link = filename : join ( Base , text ( LinkRelative0 )), 22ok = file : delete ( Link ), 23ok = file : make_symlink ( Target , Link ), 24nil . 25 26exists ( Base0 , Relative0 ) -> 27filelib : is_file ( filename : join ( text ( Base0 ), text ( Relative0 ))). 28 29chmod ( Base , Relative , Mode ) -> 30ok = file : change_mode ( filename : join ( text ( Base ), text ( Relative )), Mode ), 31nil . 32 33cleanup ( Root ) -> 34_ = file : del_dir_r ( Root ), 35nil . 36 37text ( Value ) -> unicode : characters_to_list ( Value ). 38bin ( Value ) -> unicode : characters_to_binary ( Value ).