File tree Expand file tree Collapse file tree
src/placeos-frontend-loader Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -132,9 +132,29 @@ module PlaceOS::FrontendLoader
132132 load_resources(timeout: LOAD_TIMEOUT ).tap do
133133 # Pull base PlaceOS WWW folder
134134 create_base_www
135+ # Clean up stale temp folders
136+ cleanup_stale_temp_folders
135137 end
136138 end
137139
140+ # Remove temp folders older than 12 hours
141+ protected def cleanup_stale_temp_folders
142+ www_folder = File .expand_path(content_directory)
143+ cutoff_time = Time .utc - 12 .hours
144+
145+ stale_dirs = Dir .children(www_folder)
146+ .select { |child | File .directory?(Path [www_folder, child]) }
147+ .select(& .matches?(/^.+_temp_\d +$/ ))
148+ .select do |dir |
149+ path = Path [www_folder, dir]
150+ File .info?(path).try { |info | info.modification_time < cutoff_time } || false
151+ end
152+
153+ stale_dirs.each { |dir | Log .info { " removing stale temp folder: #{ dir } " } }
154+ stale_dirs.map! { |dir | Path [www_folder, dir].to_s }
155+ FileUtils .rm_rf(stale_dirs) unless stale_dirs.empty?
156+ end
157+
138158 def process_resource (action : Resource ::Action , resource : Model ::Repository ) : Resource ::Result
139159 repository = resource
140160
You can’t perform that action at this time.
0 commit comments