ftp -o - https://jcs.org/move_in | sh -
1#!/usr/bin/env ruby
2
3require "ftpd"
4require "socket"
5
6class Driver
7 def initialize
8 @temp_dir = Dir.pwd
9 end
10 def authenticate(user, password)
11 true
12 end
13 def file_system(user)
14 Ftpd::DiskFileSystem.new(@temp_dir)
15 end
16end
17
18int = `route -n get default`.split("\n").select{|l| l.match(/interface:/) }.
19 first.gsub(/.*: /, "")
20ip = `ifconfig #{int} | grep 'inet '`.split("\n")[0].gsub(/.*inet /, "").
21 gsub(/ .*/, "").strip
22
23server = Ftpd::FtpServer.new(Driver.new)
24server.log = Logger.new(STDOUT)
25server.interface = "0.0.0.0"
26
27if Process.uid == 0 || `uname -s`.strip == "Darwin"
28 server.port = 21
29else
30 server.port = 2121
31end
32
33puts "ftpd listening on #{ip}:#{server.port}"
34
35server.start
36while true do
37 gets
38end