+Array(node[:squid][:cache_dir]).each do |cache_dir|
+ if cache_dir =~ /^coss (\S+) /
+ cache_dir = File.dirname(Regexp.last_match(1))
+ elsif cache_dir =~ /^\S+ (\S+) /
+ cache_dir = Regexp.last_match(1)
+ end
+
+ directory cache_dir do
+ owner "proxy"
+ group "proxy"
+ mode "750"
+ recursive true
+ notifies :restart, "service[squid]"
+ end
+end
+
+systemd_tmpfile "/var/run/squid" do
+ type "d"
+ owner "proxy"
+ group "proxy"
+ mode "0755"
+end
+
+address_families = %w[AF_UNIX AF_INET AF_INET6]
+
+file "/etc/systemd/system/squid.service" do
+ action :delete
+end
+
+file "/etc/logrotate.d/squid.dpkg-dist" do
+ action :delete
+end
+
+squid_service_exec = if node[:lsb][:release].to_f < 20.04
+ "/usr/sbin/squid -YC"
+ else
+ "/usr/sbin/squid --foreground -YC"
+ end
+
+systemd_service "squid" do
+ dropin "chef"
+ limit_nofile 98304
+ private_tmp true
+ private_devices node[:squid][:private_devices]
+ protect_system "full"
+ protect_home true
+ restrict_address_families address_families
+ restart "always"
+ exec_start "#{squid_service_exec}"