code: def do_create(config, config_dir):
      
      if os.path.exists(config_dir):
          print "Configuration '{}' already exists.".format(config)
          exit(1)
      os.makedirs(config_dir)
      print "Configuration directory created."
  
      url = raw_input("RSS URL for processing []: ")
      torrent_dir = raw_input("Output directory for found .torrent files [{}]: "\
          .format(DEFAULT_TORRRENT_DIR)) or DEFAULT_TORRRENT_DIR
      update_interval = raw_input("Update interval (mins) [{}]: "\
          .format(DEFAULT_UPDATE_INTERVAL)) or DEFAULT_UPDATE_INTERVAL
  
      editor = os.environ["EDITOR"]
  
      config_filter = os.path.join(config_dir, 'filter')
      if confirm("Do you want to create filters list?", False):
          call([editor, config_filter])
          print "Filter configuration has been saved."
  
      config_blacklist = os.path.join(config_dir, 'blacklist')
      if confirm("Do you want to create blacklist?", False):
          call([editor, config_filter])
          print "Blacklist configuration has been saved."
  
      config_file = os.path.join(config_dir, 'config')
      config_data = json.dumps({
          "url": url,
          "torrent_dir": torrent_dir,
          "update_interval": update_interval
      }, sort_keys=True, indent=4, separators=(',', ': '))
      with open(config_file, 'w') as f:
          f.write(config_data)
  
      ct = CronTab(user=True)
      cmd = "{} {} -e {}".format(sys.executable,
                                 os.path.abspath(__file__),
                                 config)
      job = ct.new(command=cmd)
      job.minute.every(update_interval)
      job.enable()
      ct.write()
      print "Crontab updated."
  
      print "Config '{}' has been saved.".format(config)
docs: CLI action "create new configuration".