   constructor: ->
     @userPackagesDirectory = path.join(config.getAtomDirectory(), 'packages')
     @devPackagesDirectory = path.join(config.getAtomDirectory(), 'dev', 'packages')
+    @gitPackagesDirectory = path.join(config.getAtomDirectory(), 'git-packages')
     if configPath = CSON.resolve(path.join(config.getAtomDirectory(), 'config'))
       try
         @disabledPackages = CSON.readFileSync(configPath)?.core?.disabledPackages

      @listUserPackages options, (error, packages) =>
        @logPackages(packages, options)

  listPackagesAsJson: (options) ->
    output =
      core: []
      dev: []
      user: []

    @listBundledPackages options, (error, packages) =>
      output.core = packages
      @listDevPackages options, (error, packages) =>
        output.dev = packages
        @listUserPackages options, (error, packages) ->
          output.user = packages
          console.log JSON.stringify(output)

  run: (options) ->
    {callback} = options

        console.log "#{@devPackagesDirectory.cyan} (#{devPackages.length})"
    callback?(null, devPackages)

  listGitPackages: (options, callback) ->
    gitPackages = @listPackages(@gitPackagesDirectory, options)
    if gitPackages.length > 0
      unless options.argv.bare or options.argv.json
        console.log "#{@gitPackagesDirectory.cyan} (#{gitPackages.length})"
    callback?(null, gitPackages)

  listBundledPackages: (options, callback) ->
    config.getResourcePath (resourcePath) ->
      try
