# File lib/main/program/class_methods.rb, line 318
      def state_path(*state_path, &block)
        unless defined?(@state_path)
          if main_env('STATE')
            @state_path = File.expand_path(main_env('STATE'))
            @state_dirname = File.dirname(@state_path)
            @state_basename = File.basename(@state_path)
          else
            @state_path = File.join(state_dirname, state_basename)
          end
        end

        if block
          require 'fileutils' unless defined?(FileUtils)
          FileUtils.mkdir_p(@state_path) unless test(?d, @state_path)
          Dir.chdir(@state_path, &block)
        else
          @state_path
        end
      end