@@ -58,26 +58,30 @@ defmodule Hexdocs.Queue do
5858
5959 case key_components ( key ) do
6060 { :ok , repository , package , version } ->
61- tarball_path = Hexdocs.TmpDir . tmp_file ( "docs-tarball" )
62-
63- case Hexdocs.Store . get_to_file ( :repo_bucket , key , tarball_path ) do
64- :ok ->
65- case Hexdocs.Tar . unpack_to_dir ( { :file , tarball_path } ,
66- repository: repository ,
67- package: package ,
68- version: version
69- ) do
70- { :ok , _dir , files } ->
71- update_index_sitemap ( repository , key )
72- update_package_sitemap ( repository , key , package , files )
73- Logger . info ( "#{ key } : done" )
74-
75- { :error , reason } ->
76- Logger . error ( "Failed unpack #{ repository } /#{ package } #{ version } : #{ reason } " )
77- end
78-
79- nil ->
80- Logger . error ( "#{ key } : package not found in store" )
61+ try do
62+ tarball_path = Hexdocs.TmpDir . tmp_file ( "docs-tarball" )
63+
64+ case Hexdocs.Store . get_to_file ( :repo_bucket , key , tarball_path ) do
65+ :ok ->
66+ case Hexdocs.Tar . unpack_to_dir ( { :file , tarball_path } ,
67+ repository: repository ,
68+ package: package ,
69+ version: version
70+ ) do
71+ { :ok , _dir , files } ->
72+ update_index_sitemap ( repository , key )
73+ update_package_sitemap ( repository , key , package , files )
74+ Logger . info ( "#{ key } : done" )
75+
76+ { :error , reason } ->
77+ Logger . error ( "Failed unpack #{ repository } /#{ package } #{ version } : #{ reason } " )
78+ end
79+
80+ nil ->
81+ Logger . error ( "#{ key } : package not found in store" )
82+ end
83+ after
84+ Hexdocs.TmpDir . cleanup ( )
8185 end
8286
8387 :error ->
@@ -114,20 +118,24 @@ defmodule Hexdocs.Queue do
114118 version: version
115119 } )
116120
117- tarball_path = Hexdocs.TmpDir . tmp_file ( "docs-tarball" )
121+ try do
122+ tarball_path = Hexdocs.TmpDir . tmp_file ( "docs-tarball" )
118123
119- case Hexdocs.Store . get_to_file ( :repo_bucket , key , tarball_path ) do
120- :ok ->
121- case type do
122- :upload ->
123- process_upload ( key , repository , package , version , { :file , tarball_path } , start )
124+ case Hexdocs.Store . get_to_file ( :repo_bucket , key , tarball_path ) do
125+ :ok ->
126+ case type do
127+ :upload ->
128+ process_upload ( key , repository , package , version , { :file , tarball_path } , start )
124129
125- :search ->
126- process_search ( key , repository , package , version , { :file , tarball_path } , start )
127- end
130+ :search ->
131+ process_search ( key , repository , package , version , { :file , tarball_path } , start )
132+ end
128133
129- nil ->
130- Logger . error ( "#{ log_prefix } #{ key } : package not found in store" )
134+ nil ->
135+ Logger . error ( "#{ log_prefix } #{ key } : package not found in store" )
136+ end
137+ after
138+ Hexdocs.TmpDir . cleanup ( )
131139 end
132140
133141 :error ->
@@ -254,18 +262,22 @@ defmodule Hexdocs.Queue do
254262 version: version
255263 } )
256264
257- version = Version . parse! ( version )
258- all_versions = all_versions ( repository , package )
259- Hexdocs.Bucket . delete ( repository , package , version , all_versions )
260- update_index_sitemap ( repository , key )
265+ try do
266+ version = Version . parse! ( version )
267+ all_versions = all_versions ( repository , package )
268+ Hexdocs.Bucket . delete ( repository , package , version , all_versions )
269+ update_index_sitemap ( repository , key )
261270
262- if repository == "hexpm" do
263- Hexdocs.Search . delete ( package , version )
264- end
271+ if repository == "hexpm" do
272+ Hexdocs.Search . delete ( package , version )
273+ end
265274
266- elapsed = System . os_time ( :millisecond ) - start
267- Logger . info ( "FINISHED DELETING DOCS #{ key } #{ elapsed } ms" )
268- :ok
275+ elapsed = System . os_time ( :millisecond ) - start
276+ Logger . info ( "FINISHED DELETING DOCS #{ key } #{ elapsed } ms" )
277+ :ok
278+ after
279+ Hexdocs.TmpDir . cleanup ( )
280+ end
269281
270282 { :ok , _repository , _package , _version } ->
271283 :skip
0 commit comments