| @@ -157,15 +157,36 @@ class DocsCLI < Thor · 156 unmodified lines |
| 157 | 157 | option :dryrun, type: :boolean |
| 158 | 158 | option :packaged, type: :boolean |
| 159 | 159 | def upload(*names) |
| 160 | + require 'net/sftp' |
| 160 | 161 | names = Dir[File.join(Docs.store_path, '*.tar.gz')].map { |f| File.basename(f, '.tar.gz') } if options[:packaged] |
| 161 | 162 | docs = find_docs(names) |
| 162 | 163 | assert_docs(docs) |
| 164 | + |
| 165 | + # Sync files with S3 (used by the web app) |
| 166 | + puts '[S3] Begin syncing.' |
| 163 | 167 | docs.each do |doc| |
| 164 | | − puts "Syncing #{doc.path}..." |
| 168 | + puts "[S3] Syncing #{doc.path}..." |
| 165 | 169 | cmd = "aws s3 sync #{File.join(Docs.store_path, doc.path)} s3://docs.devdocs.io/#{doc.path} --delete" |
| 166 | 170 | cmd << ' --dryrun' if options[:dryrun] |
| 167 | 171 | system(cmd) |
| 168 | 172 | end |
| 173 | + puts '[S3] Done syncing.' |
| 174 | + |
| 175 | + # Upload packages to dl.devdocs.io (used by the "thor docs:download" command) |
| 176 | + puts '[MaxCDN] Begin uploading.' |
| 177 | + Net::SFTP.start('ftp.devdocs-dl.devdocs.netdna-cdn.com', ENV['DEVDOCS_DL_USERNAME'], password: ENV['DEVDOCS_DL_PASSWORD']) do |sftp| |
| 178 | + docs.each do |doc| |
| 179 | + filename = "#{doc.path}.tar.gz" |
| 180 | + print "[MaxCDN] Uploading #{filename}..." |
| 181 | + if options[:dryrun] |
| 182 | + print "\n" |
| 183 | + else |
| 184 | + sftp.upload! File.join(Docs.store_path, filename), File.join('', 'public_html', filename) |
| 185 | + print " OK\n" |
| 186 | + end |
| 187 | + end |
| 188 | + end |
| 189 | + puts '[MaxCDN] Done uploading.' |
| 169 | 190 | end |
| 170 | 191 | |
| 171 | 192 | desc 'commit', '[private]' |