Могу ли я использовать `setcs`, чтобы установить конфигспекцию для переменной? - PullRequest
1 голос
/ 12 июня 2019

Фон

В чистом виде команда setcs используется в следующих примерах:

Изменение спецификации конфигурации текущегопросмотр содержимого файла cspec_REL3.

cmd-контекст setcs cspec_REL3

Измените конфигурационную спецификацию представления, тег представления которого является jackson_vu, на спецификацию конфигурации по умолчанию.

cmd-контекст setcs –tag jackson_vu –default

Попросить view_server текущего представления перечитать свою конфигурационную спецификацию.

cmd-contextsetcs –current

Проблема

У меня есть скрипт, в котором я пытаюсь сделать следующее:

  1. Получить configSpec определенного представления, которое ясгенерированный ранее в скрипте (с отредактированной первой строкой ).
  2. Удалите строку в конфигурации, которая говорит "element * CHECKEDOUT" (я использовал этот метод )
  3. Установите для configSpec этого вида новые изменения, которые я сделал.

Ниже приведен код, который я написал, чтобы попытаться это сделать:

configSpec=`cleartool catcs -tag $VIEW_NAME | tail -n +2`
noCheckout=`printf '%s\n' "{$configSpec//element * CHECKEDOUT/}"`
cleartool setcs -tag $VIEW_NAME $noCheckout

Возвращает заданную ошибку:

cleartool: Error: Extra arguments: "SET:"

, которая, как оказалось, является первым словом в переменной noCheckout.

Вопрос

Как я могу редактировать и обновлять конфигурацию, используя строковую переменную в качестве посредника?

1 Ответ

1 голос
/ 13 июня 2019

Я бы рекомендовал вместо использования строковой переменной в качестве посредника использовать файл , поскольку cleartool setcs pname - это:

pname
Задает текст файл , содержимое которого должно стать новой конфигурационной спецификацией представления.

Итак, если вы можете, перенаправить содержимое вашей переменной в файл (fprintf) и использовать это определенное имя файла в качестве аргумента вашей команды setcs.

...