public function run()
    {
        try {
            $this->setTarget();
            $this->setMaxSize();
            $this->setExcludeList();
            $this->setSkipChecks();
            $this->setFileExtensions();

            $this->scanFiles();
            $this->printReport();
            $this->printMemoryUsage();
            if ($this->hasIssue)
                exit(1);
        } catch (Exception $e) {
            $this->exitWithError($e->getMessage(), 128);
        }
    }