config_set

in lib/gdk/command/config.rb [49:79]


      def config_set(slug, value)
        value_stored_in_gdk_yml = config.user_defined?(*slug)
        old_value = config.dig(*slug)
        new_value = config.bury!(slug, value)

        Command.validate_config!

        if old_value == new_value && value_stored_in_gdk_yml
          GDK::Output.warn("'#{slug}' is already set to '#{old_value}'")
          return true
        elsif old_value == new_value && !value_stored_in_gdk_yml
          GDK::Output.success("'#{slug}' is now set to '#{new_value}' (explicitly setting '#{old_value}').")
        elsif old_value != new_value && value_stored_in_gdk_yml
          GDK::Output.success("'#{slug}' is now set to '#{new_value}' (previously '#{old_value}').")
        else
          GDK::Output.success("'#{slug}' is now set to '#{new_value}' (previously using default '#{old_value}').")
        end

        config.save_yaml!
        GDK::Output.info("Don't forget to run 'gdk reconfigure'.")

        true
      rescue GDK::ConfigSettings::SettingUndefined => e
        GDK::Output.abort("Cannot get config for '#{slug}'.", e, report_error: false)
      rescue TypeError => e
        GDK::Output.abort(e.message, e, report_error: false)
      rescue StandardError => e
        GDK::Output.error(e.message, e)
        abort
      end