How to stop continuously servo with push button

consider. you'll need to add code to drive motor to open or close fence

const byte butPin = A1;

const byte led1Pin = 13;
const byte led2Pin = 12;

byte butState;

enum { Closed, Opening, Open, Closing, Last };
byte state = Closed;

enum { Off = HIGH, On = LOW };


const unsigned long Period = 200;
unsigned long msec;
unsigned long msecLst;

// -----------------------------------------------------------------------------
void loop ()
{
    byte but = digitalRead (butPin);

    if (butState != but)    // state change
    {
        butState = but;
        delay (10);         // debounce

        if (LOW == but)     // pressed
            state = Last == ++state ? Closed : state;
    }

    msec = millis ();

    switch (state)  {
    case Opening:
        digitalWrite (led1Pin, Off);
        if ( (msec - msecLst) > Period)  {
            msecLst = msec;
            digitalWrite (led2Pin, ! digitalRead (led2Pin)); 
        }
        break;

    case Open:
        digitalWrite (led2Pin, On);
        break;

    case Closing:
        digitalWrite (led2Pin, Off);
        if ( (msec - msecLst) > Period)  {
            msecLst = msec;
            digitalWrite (led1Pin, ! digitalRead (led1Pin)); 
        }
        break;

    case Closed:
    default:
        digitalWrite (led1Pin, On);
        break;
    }
}

// -----------------------------------------------------------------------------
void setup ()
{
    pinMode      (led1Pin, OUTPUT);
    digitalWrite (led1Pin, Off);
    pinMode      (led2Pin, OUTPUT);
    digitalWrite (led2Pin, Off);

    pinMode (butPin, INPUT_PULLUP);
    butState = digitalRead (butPin);
}