# All files / src/app/shared/pipes ceph-release-name.pipe.ts

100% Statements 10/10
100% Branches 0/0
100% Functions 2/2
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    2595x

    95x
    95x

    3x

    1x

    1x

    1x

    95x
     import { Pipe, PipeTransform } from '@angular/core';

    @Pipe({
      name: 'cephReleaseName'
    })
    export class CephReleaseNamePipe implements PipeTransform {
      transform(value: any): any {
        // Expect "ceph version 13.1.0-419-g251e2515b5
        //         (251e2515b563856349498c6caf34e7a282f62937) nautilus (dev)"
        const result = /ceph version\s+[^ ]+\s+\(.+\)\s+(.+)\s+\((.+)\)/.exec(value);
        if (result) {
          if (result[2] === 'dev') {
            // Assume this is actually master
            return 'master';
          } else {
            // Return the "nautilus" part
            return result[1];
          }
        } else {
          // Unexpected format, pass it through
          return value;
        }
      }
    }