Papirus-icon-theme: Need modify script apply-stylesheet.sh

Created on 4 Dec 2016  ·  76Comments  ·  Source: PapirusDevelopmentTeam/papirus-icon-theme

Need modify apply-stylesheet.sh for Papirus and Papirus Dark.

  • delete gzip
  • used only Papirus colors

Colors for Papirus:

ColorScheme-ButtonBackground #d3dae3
ColorScheme-Text #5c616c
ColorScheme-Highlight #5294e2

Colors for Papirus Dark:

ColorScheme-Text #d3dae3
ColorScheme-Highlight #5294e2

example code available on https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/issues/199

completed help wanted

All 76 comments

@SmartFinn
Now i'm modify tools
1 script save *.svg files as INKSCAPE-SVG. Why not PLAIN-SVG? Because inkscape-svg need for right work second script
2 script add stylesheet on icons
3 script clear icons

Need to improve scripts, because i'm noob

@SmartFinn Т.е. ты понял суть да? Все файлы сохраняются как инкскейп-свг, потом добавляется стиль, ну а затем все это чистится твоим скриптом с свго.
Надо это как-то унифицировать, у меня мозгов не хватает...

И еще почему-то class="" пустой...

@varlesh так понял уже не нужно? Как добавлял?

svgo.yml не скрипт, а конфигурация для SVGO в формате YAML, расширение у него неспроста такое :)

tools/1-inkscape.sh не работает как задумано, Inkscape не переписывает файлы без изменений

@varlesh добавил скрипты для постобработки f21d8997acb421cf297b53620fc83fd92b165f3c, это все что смог придумать

@SmartFinn Привет спасибо за постобработку... Я делал как всегда по старинке, седом выпиливал...
во втором скрипте 2-papirus-stylesheet очень много ошибок, он прописывает currentColor по несколько раз и class вставляет вообще не в те места. Вот я седом все это дело выпиливал и проверял. По хорошему надо еще валидность XML проверить, но мне лень было )

@varlesh xmllint не ругается, так что будем считать валидным пока не доказано обратное

Это хорошо, но вот теперь загвостка - как создавать новые значки для actions, panel и т.д.
Сидеть и править вручную это печально

т.е. создавая новый файл (открыв просто старый и изменив) inkscape удаляет и fill и class...
хорошо хоть стиль оставляет.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="16"
   height="16"
   viewBox="0 0 16 16"
   id="svg2"
   version="1.1"
   inkscape:version="0.91 r13725"
   sodipodi:docname="action-unavailable.svg">
  <metadata
     id="metadata11">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <sodipodi:namedview
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1"
     objecttolerance="10"
     gridtolerance="10"
     guidetolerance="10"
     inkscape:pageopacity="0"
     inkscape:pageshadow="2"
     inkscape:window-width="1600"
     inkscape:window-height="843"
     id="namedview9"
     showgrid="false"
     inkscape:zoom="14.75"
     inkscape:cx="-5.7627119"
     inkscape:cy="8"
     inkscape:window-x="0"
     inkscape:window-y="0"
     inkscape:window-maximized="1"
     inkscape:current-layer="svg2" />
  <defs
     id="defs4">
    <style
       type="text/css"
       id="current-color-scheme">
   .ColorScheme-Text { color:#5c616c; }
  </style>
  </defs>
  <path
     sodipodi:type="star"
     style="opacity:1;fill:#5c616c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
     id="path4139"
     sodipodi:sides="3"
     sodipodi:cx="8.2033901"
     sodipodi:cy="9.4915247"
     sodipodi:r1="7.2323446"
     sodipodi:r2="3.6161723"
     sodipodi:arg1="-1.5707963"
     sodipodi:arg2="-0.52359878"
     inkscape:flatsided="false"
     inkscape:rounded="0"
     inkscape:randomized="0"
     d="m 8.2033903,2.2591801 3.1316967,5.4242584 3.131697,5.4242585 -6.2633939,0 -6.2633943,0 3.1316972,-5.4242584 z"
     inkscape:transform-center-y="-2.3333328"
     transform="matrix(1.1176049,0,0,1.290499,-1.1681489,-1.9154699)" />
</svg>

Т.е. style остался - это уже хорошо, потому что ненужно с ним будет париться.
Цвет может быть прописан как fill или color, с этим все понятно и легко лечится седом... но вот как быть с class?
Хотя есть один вариант... К примеру если sed находит такие значения:

  • fill:#5c616c
  • fill="#5c616c"
  • color:#5c616c
  • color="#5c616c"

то прописывается после кавычек с пробелом class="ColorScheme-Text"
Ну а дальше уже удаляет color и меняет fill на currentColor...

единственная проблема сейчас в том, что style сейчас везде разный... в большинстве actions вообще отсутствует другие классы:

<style type="text/css" id="current-color-scheme">
   .ColorScheme-Text { color:#5c616c; } .ColorScheme-Highlight { color:#5294e2; } .ColorScheme-ButtonBackground { color:#d3dae3; }
  </style>

@varlesh ладно, попробую как-нибудь довести до ума apply-stylesheet.sh, с xmlstarlet работать просто мука и никакого удовольствия.

единственная проблема сейчас в том, что style сейчас везде разный... в большинстве actions вообще отсутствует другие классы

а надо ли добавлять лишние классы если они не используются, я думаю нет.

@SmartFinn Сереж, стой. Давай договоримся чтоль, а то опять ты будешь тратить время напрасно...
Не хочу тебя напрягать лишний раз.
Смотри, в общем я сейчас залил шаблоны для будущих девелоперов, ну и для нас самих естественно. Там в ридми расписал как и что делать (правда пока только для Papirus такое надо и для Dark сделать)
В чем заключается суть...

  • новый файл создается на основе шаблона, так как там уже прописан стиль и чистый SVG...
  • после этого нужно написать скрипт, который просто на основе седа меняет всё что нужно
  • ну и в конце запускается чистильщик svgo и проверка xmlinit

Для того чтобы не тратить кучу времени на проверку и очистку всех файлов предлагаю поступить следующим образом.
В общем создался файл на основе шаблона, НО в конце имени добавляется к примеру суффикс _template2.
т.е. что бы скрипт проверял не все файлы а именно эти которые с _template2 - так мы экономим время и лишаем себя лишней ненужной чистки, которая уже давно все почистила...
Ну и последний скрипт запускается с обычным rename -s|_template2||g' .svg

т.е. человек просто открывает шаблон, риует в нем значок и сохраняет с нужным именем добавляя суффикс. Потом просто идет в папку tools, запускает нужный скрипт и оно там всё фиксит

Для цветных иконок apps, devices и прочего достаточно только обычного svgo с твоим конфигом. Об этом тоже будет расписано в ридми....
Или лучше вики сделать на эту тему... ну эт дело десятое. В общем нам надо автоматизацию отработать.

Подкинул нам делов товарищ из кде и смылся...

а надо ли добавлять лишние классы если они не используются, я думаю нет.

Надо, потому что значок может быть как с синим так и без него - это известно только дизайнеру.
А потому он лишний не будет. И что бы путаницы избежать в будущем...

@varlesh сделай лучше папку template в tools и перенеси туда с иерархией, а то среди других иконок фиг найдешь. И сделай там же README в markdown.

Насчет суффиксов не знаю, есть способы и без суффиксов запустить только там где надо, в tools Useful snippets примеры.

Ок перенесу

@varlesh логика вырисовывается следующая:
если в файле есть .ColorScheme-* то у всех элементов с атрибутом style удалить color=#HEXHEX; и подставить соответствующий class.

@SmartFinn Я сейчас возьму шаблон, создам новый файл на основе него и посмотрим..

в дельфине вообще чудно выглядит:
image
Часть кода нужного:

<defs
     id="defs10">
    <style
       type="text/css"
       id="current-color-scheme">
   .ColorScheme-Text { color:#5c616c; } .ColorScheme-Highlight { color:#5294e2; } .ColorScheme-ButtonBackground { color:#d3dae3; }
  </style>
  </defs>
  <circle
     style="opacity:1;fill:#5c616c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
     id="path4140"
     cx="6"
     cy="10"
     r="6" />
  <rect
     style="opacity:1;fill:#5294e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
     id="rect4142"
     width="10"
     height="10"
     x="6"
     y="0" />
</svg>

Видишь тут вообще color нету, оно походу наследует имена color и fill от родителя

По сути надо сделать всего лишь замену fill:#HEXHEX на fill:currentColor и добавить класс

Тем самым мы лишаем себя кучи проблем и скриптов... единственный вопрос как это будет работать в разных версиях inkscape...

@varlesh ок, на выходных займусь.

т.е. сначала на основе цвета доавляется класс, так как нужно знать какой класс присваиваться какому цвету... а потом уже цвет меняется на fill:currentColor

я лично считаю это самым оптимальным решением... чем сидеть и колупаться со скриптами.

  • берем шаблон, рисуем значок и сохраняем
  • запускаем скрипт который на основе цвета подставляет класс и меняет fill на currentColor
  • ну а потом чистится и переименовывается (убирается суффикс)

я пока добавлю template для apps и остальных... что бы все в одном месте было. Позже наверн дарком займусь
Если что придумаешь проще, то пиши.

Всё вроде расписал и разгруппировал...
И так, скрипты наши :)
Нужно создать несколько скриптов, возможно некоторые объединить.
Директория template:
monochrome - все монохромные иконки, имеющие класс и стиль для KDE
main - обычные чистые иконки для приложений и т.д.

В общем, для monochrome нужно 4 (3) скрипта:

  1. Скрипт ищет определенные цвета (#5c616c #5294e2 #d3dae3) в секции fil, если находит, то присваивает соответствующий class объекту. Затем переименовывает в fil:#COLOR в fill:currentColor
  2. Скрипт-очистка, конфиг для svgo (ты его уже создал)
  3. Скрипт который меняет класс/цвет для Papirus Dark. Напомню цвета, что бы не запутаться.
    В Papirus используются цвета:
  4. actions (16, 22, 24), devices (16), places (16)
    .ColorScheme-Text { color:#d3dae3; } & .ColorScheme-Highlight { color:#5294e2; }
  5. panel (22, 24)
    .ColorScheme-ButtonBackground { color:#d3dae3; } & .ColorScheme-Highlight { color:#5294e2; }
    В Papirus Dark используются цвета:
  6. actions (16, 22, 24), devices (16), places (16) & panel (22, 24)
    .ColorScheme-Text { color:#d3dae3; } & .ColorScheme-Highlight { color:#5294e2; }
  7. Скрипт, которые переименовывает файл _p.svg. Достаточно обычного
    rename 's|_p.svg|.svg|g' *.svg

Хотел сам попробовать с седом, но мозгов не хватает :(

# Remove Colors
sed -i 's|"color:#5c616c;|"|g' *_p.svg
sed -i 's|"color:#5294e2;|"|g' *_p.svg
sed -i 's|"color:#d3dae3;|"|g' *_p.svg
sed -i 's|color:#5c616c;"|"|g' *_p.svg
sed -i 's|color:#5294e2;"|"|g' *_p.svg
sed -i 's|color:#d3dae3;"|"|g' *_p.svg
# add classes
sed -i '/style[^ ]*fill:#5c616c/ a\class="ColorScheme-Text"' *_p.svg
sed -i '/style[^ ]*fill:#5294e2/ a\class="ColorScheme-Highlight"' *_p.svg
sed -i '/style[^ ]*fill:#d3dae3/ a\class="ColorScheme-ButtonBackground"' *_p.svg
# replace fill
sed -i 's/fill:#5c616c/fill:currentColor/g' *_p.svg
sed -i 's/fill:#5294e2/fill:currentColor/g' *_p.svg
sed -i 's/fill:#d3dae3/fill:currentColor/g' *_p.svg

Но нефига!
В общем inkscape себя ведет по разному... иногда заменяет fill:currentColor на fill:ЦВЕТ, иногда добавляет fill:currentColor color:ЦВЕТ. Тоже самое и с классом, может как и оставить, так и удалить.
Получается, либо дублируется class, либо fill:currentColor. И скрипт странно себя ведет, может взять и не сработать...

Полу-рабочий скрипт:

#!/bin/bash
# Papirus stylesheet
export SVGPAPIRUS=`ls | grep _p.svg`
# add classes
xmlstarlet ed --subnode "//*/*[contains(@style, '${colors[i]}') and not (@class)]" -t attr -n "class" -v "${colorNames[i]}" $SVGPAPIRUS > $SVGPAPIRUS.temp
sed -i 's|class=""/>|/>|g' $SVGPAPIRUS.temp
sed -i 's|class="">|>|g' $SVGPAPIRUS.temp
mv $SVGPAPIRUS.temp $SVGPAPIRUS
# remove colors
sed -i 's|"color:#5c616c;|"|g' $SVGPAPIRUS
sed -i 's|"color:#5294e2;|"|g' $SVGPAPIRUS
sed -i 's|"color:#d3dae3;|"|g' $SVGPAPIRUS
sed -i 's|color:#5c616c;"|"|g' $SVGPAPIRUS
sed -i 's|color:#5294e2;"|"|g' $SVGPAPIRUS
sed -i 's|color:#d3dae3;"|"|g' $SVGPAPIRUS
# replace fill
sed -i 's/fill:#5c616c/fill:currentColor/g' $SVGPAPIRUS
sed -i 's/fill:#5294e2/fill:currentColor/g' $SVGPAPIRUS
sed -i 's/fill:#d3dae3/fill:currentColor/g' $SVGPAPIRUS

В папку monochrome/16x16/actions его добавил и примеры "грязных" SVG от inkscape.
В итоге xmlstarlet игнорирует длинные атрибуты style и не добавляет class.
Вот для примера, до:

<defs
     id="papirus">
    <style
       type="text/css"
       id="current-color-scheme">
   .ColorScheme-Text { color:#5c616c; } .ColorScheme-Highlight { color:#5294e2; } .ColorScheme-ButtonBackground { color:#d3dae3; }
  </style>
  </defs>
  <path
     inkscape:connector-curvature="0"
     class="ColorScheme-ButtonBackground"
     id="path6"
     d="m 1,3 0,16 16,0 0,-7.5 -2,2 L 15,17 3,17 3,5 15,5 15,8 17,6 17,3 1,3 Z"
     style="fill:#d3dae3" />
  <path
     inkscape:connector-curvature="0"
     class="ColorScheme-Highlight"
     id="path8"
     d="m 19.35,5.07 -7.0254,7.1348 -4.9414,-5 -1.3848,1.4043 4.9434,5.002 1.3711,1.3906 1.3828,-1.4062 L 20.723,6.4607 19.35,5.0701 Z"
     style="color:#5294e2;fill:currentColor" />
  <path
     style="color:#d3dae3;fill:currentColor"
     d="m 1,-1 0,16 16,0 0,-7.5 -2,2 0,3.5 -12,0 0,-12 12,0 0,3 2,-2 0,-3 -16,0 z"
     id="path4140"
     class="ColorScheme-ButtonBackground"
     inkscape:connector-curvature="0" />
  <path
     style="opacity:1;fill:#d3dae3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
     d="m 21.81356,18.597458 a 2.3305085,2.8432202 0 0 1 -2.330509,2.84322 2.3305085,2.8432202 0 0 1 -2.330508,-2.84322 2.3305085,2.8432202 0 0 1 2.330508,-2.84322 2.3305085,2.8432202 0 0 1 2.330509,2.84322 z"
     id="path4142" />
</svg>

после:

<defs
     id="papirus">
    <style
       type="text/css"
       id="current-color-scheme">
   .ColorScheme-Text { color:#5c616c; } .ColorScheme-Highlight { color:#5294e2; } .ColorScheme-ButtonBackground { color:#d3dae3; }
  </style>
  </defs>
  <path
     inkscape:connector-curvature="0"
     class="ColorScheme-ButtonBackground"
     id="path6"
     d="m 1,3 0,16 16,0 0,-7.5 -2,2 L 15,17 3,17 3,5 15,5 15,8 17,6 17,3 1,3 Z"
     style="fill:currentColor" />
  <path
     inkscape:connector-curvature="0"
     class="ColorScheme-Highlight"
     id="path8"
     d="m 19.35,5.07 -7.0254,7.1348 -4.9414,-5 -1.3848,1.4043 4.9434,5.002 1.3711,1.3906 1.3828,-1.4062 L 20.723,6.4607 19.35,5.0701 Z"
     style="fill:currentColor" />
  <path
     style="fill:currentColor"
     d="m 1,-1 0,16 16,0 0,-7.5 -2,2 0,3.5 -12,0 0,-12 12,0 0,3 2,-2 0,-3 -16,0 z"
     id="path4140"
     class="ColorScheme-ButtonBackground"
     inkscape:connector-curvature="0" />
  <path
     style="opacity:1;fill:currentColor;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
     d="m 21.81356,18.597458 a 2.3305085,2.8432202 0 0 1 -2.330509,2.84322 2.3305085,2.8432202 0 0 1 -2.330508,-2.84322 2.3305085,2.8432202 0 0 1 2.330508,-2.84322 2.3305085,2.8432202 0 0 1 2.330509,2.84322 z"
     id="path4142" />
</svg>

вот такие атрибуты style="opacity:1;fill:currentColor;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" он пропускает.
я хз почему и что ему не нравится :(

@varlesh не трать время, у меня уже есть идея как реализовать, к выходным сделаю. Спешить же некуда?

Там просто столько нюансов жесть просто.. я уже и так и этак, а оно не хочет нефига.
Я просто не хочу с гитом это связывать и хуки разные делать, для меня проще кинуть в папку скрипт и запустить, проверить и закоммитить.
Ладно не буду мучить тебя и себя, один хрен я не понимаю даже половины, что написал...

@varlesh с git`ом я кстати не связывал, скрипты можно запускать руками с указанием путей к файлам. Сниппеты с git это простой способ получить список путей к нужным файлам, а не вводить их вручную.

да ты же знаешь, я нуб :)

@varlesh чет слишком просто, ожидал задачку на несколько вечеров, а получилось 5 строчек если не считать проверок и сахара.

Тестировал на иконках из разных мест. Протестировать можно так:

cd tools/
./run_on_files.sh _test/*

Если попадется та что ломается, или та что не фиксится — положи туда же, допилю.

Ох отлично, спасибо. Потестю...

Если class дублируется, то значок не отображается в ФМ, но SVGO всё лечит :)

А по какой причине он дублируется? Ложи в _test или сюда, посмотрю.

Потому что там уже есть класс, значок 1tray_p.svg

<defs
     id="papirus">
    <style
       type="text/css"
       id="current-color-scheme">
   .ColorScheme-Text { color:#5c616c; } .ColorScheme-Highlight { color:#5294e2; } .ColorScheme-ButtonBackground { color:#d3dae3; }
  </style>
  </defs>
  <path
     inkscape:connector-curvature="0"
     class="ColorScheme-ButtonBackground"
     id="path6"
     d="m 1,3 0,16 16,0 0,-7.5 -2,2 L 15,17 3,17 3,5 15,5 15,8 17,6 17,3 1,3 Z"
     style="fill:currentColor;" class="ColorScheme-ButtonBackground" />
  <path
     inkscape:connector-curvature="0"
     class="ColorScheme-Highlight"
     id="path8"
     d="m 19.35,5.07 -7.0254,7.1348 -4.9414,-5 -1.3848,1.4043 4.9434,5.002 1.3711,1.3906 1.3828,-1.4062 L 20.723,6.4607 19.35,5.0701 Z"
     style="fill:currentColor" class="ColorScheme-Highlight" />
  <path
     style="fill:currentColor" class="ColorScheme-ButtonBackground"
     d="m 1,-1 0,16 16,0 0,-7.5 -2,2 0,3.5 -12,0 0,-12 12,0 0,3 2,-2 0,-3 -16,0 z"
     id="path4140"
     class="ColorScheme-ButtonBackground"
     inkscape:connector-curvature="0" />
  <path
     style="opacity:1;fill:currentColor;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" class="ColorScheme-ButtonBackground"
     d="m 21.81356,18.597458 a 2.3305085,2.8432202 0 0 1 -2.330509,2.84322 2.3305085,2.8432202 0 0 1 -2.330508,-2.84322 2.3305085,2.8432202 0 0 1 2.330508,-2.84322 2.3305085,2.8432202 0 0 1 2.330509,2.84322 z"
     id="path4142" />
</svg>

@SmartFinn можно не парится - после прохода SVGO, все чистится

@varlesh что ж ты делаешь? :)

Ты ж его используешь неправильно, запускать нужно один из этих скриптов:

  • run_on_all.sh
  • run_on_all.sh
  • run_on_files.sh

Они запускают все в правильном порядке, например запускают SVGO до _fix_color_scheme.sh, иначе он не поправит цветовую схему, просто контекста не хватит.

а чет сразу этот _fix_color_scheme.sh начал :)
Сейчас проверю...

@varlesh run_on_*.sh можно запускать на любый файлах, он сам выберет из них SVG, запустит для них svgo и поправит только те что нужно.

Хех, как круто сработало. Всё прям как по маслу :)
Ты красавчик!

@SmartFinn Будешь еще что делать или мне readme оформлять?

@varlesh оформляй, точка входа будет в любом случае одна (run_on_files.sh), остальное в виде плагинов подключатся.

Насчет xmllint я пока думаю что он не нужен, SVGO делает его работу.

Насчет xmllint я пока думаю что он не нужен, SVGO делает его работу.

Да, я тоже так думаю...
Кстати, может для файлов main все-таки сделать отдельный скрипт. Просто вдруг встретятся эти цвета в значке, он же ведь ему класс присвоит.

И чет страшно мне запускать run_on_all.sh :)

@varlesh в _fix_color_scheme.sh есть строчка:

# skip if a file not have color scheme
grep -q '\.ColorScheme-Text' "$file" || continue

т.е. обрабатываться будут только те файлы, для которых class ColorScheme-Text оглашен в этом месте

<style type="text/css" id="current-color-scheme">
.ColorScheme-Text { color:#5c616c; } .ColorScheme-Highlight { color:#5294e2; } .ColorScheme-ButtonBackground { color:#d3dae3; }
</style>

И чет страшно мне запускать run_on_all.sh :)

он не делает ничего криминального, по крайней мере если _fix_color_scheme.sh на большем количестве кейсов протестировать.

я не уверен что .ColorScheme-Text где-то не встречается

Не встречается, мы ж его удаляли :smile:

@varlesh могу проверку на id="current-color-scheme" добавить для верочки

там сток файлов я хз...
мне кажется лучше вообще им один раз пройтись и удалить его от греха подальше, а то кто-нить выполнит.

кстати, если перенести папку tools и стартануть скрипт, то он ругается...

Error: couldn't find config file '/tools/svgo.yml'.
./run_on_dirs.sh: строка 27: /tools/_fix_color_scheme.sh: Нет такого файла или каталога
=> Workon '_test/2actions_p.svg' ...
Error: couldn't find config file '/tools/svgo.yml'.
./run_on_dirs.sh: строка 27: /tools/_fix_color_scheme.sh: Нет такого файла или каталога
=> Workon '_test/7panel-caps-lock-on.svg' ...

@varlesh удаляй, run_on_dirs.sh может сделать его работу.

кстати, если перенести папку tools и стартануть скрипт, то он ругается...

он только в рамках репозитория на своем месте работать может, нет нормального способа получить пути к файлам конфигурации и другим скриптам. Выполняй по полному пути, или относительному.

так я его и стартую:

./run_on_dirs.sh _test
fatal: Not a git repository (or any of the parent directories): .git
=> Directory '_test'.
   Press <CTRL-C> to abort (wait 5 seconds) ...
=> Workon '_test/5dark-actions-colors-chromablue.svg' ...
Error: couldn't find config file '/tools/svgo.yml'.
./run_on_dirs.sh: строка 27: /tools/_fix_color_scheme.sh: Нет такого файла или каталога
=> Workon '_test/2actions_p.svg' ...

@varlesh

в рамках репозитория

первую часть пути я беру с git rev-parse --show-toplevel

объясни зачем ему эта переменная GIT_ROOT=$(git rev-parse --show-toplevel) ?

@varlesh

нет нормального способа получить пути к файлам конфигурации и другим скриптам

Так вот так же должно работать или нет?

for file in $FILES; do
        echo "=> Workon '$file' ..." >&2

        # optimize
        svgo --config="tools/svgo.yml" -i "$file"

        # fix
        eval "tools/_fix_color_scheme.sh"   "$file"

@varlesh нет, если запускать из другой папки, а не с корня репозитория.

Вобщем я вроде решал похожую проблему, уберу зависимость от git если найду способ.

я не пойму, они же лежат в корне папки tools. Зачем хардкодить пути... к примеру так будет проще рисовать в другом месте, фиксить а в тему ложить уже готовые и чистые.

Вот так работает:

# optimize
        svgo --config="svgo.yml" -i "$file"

        # fix
        eval "_fix_color_scheme.sh" "$file"

@varlesh не работает

screenshot from 2016-12-07 21-54-30

Я понял, что ты хотел проверку версий и что сразу все коммитилось... но
. Скрипты конечно вещь очень полезная и нужная, но пусть смотрят на то, что нарисовали и правильно ли все пофиксилось или почистилось. А потом руками переносили

не работатет

tools в пути я забыл убрать, уже поправил постом выше

они берут шаблоны из template, вот там пусть и рисуют. Нефиг сразу в тему лезть. Нарисовал, пофиксил, проверил - кидай в тему и коммить

@SmartFinn Сереж, я вот если честно уже жалею что с этим kde color scheme связалсяю Уж больно много геморроя он нам доставляет и тормозит не хреново так.
Тот товарищ тоже молодец, запили что ему надо и убежал. Как делал, чем делал, как дальше быть - ему пофиг :(
Спасибо твоим рукам, желанию и уму. Я бы вот уже наверн плюнул на всё и вернул обратно...

@varlesh скрипты не для кого-то, а для тебя и меня. Хорошим тоном будет запускать их перед каждым коммитом.

tools в пути я забыл убрать, уже поправил постом выше

странно, сейчас исправлю.

@varlesh скрипты не для кого-то, а для тебя и меня. Хорошим тоном будет запускать их перед каждым коммитом.

Так мы же не вечные, вон кстати в запросах сидят дизайнеры, рисуют :)... Так пусть и рисуют.
Я может и разберусь со временем с скриптами, но вот придет какой-нибудь совсем зрелый парень и хрен что поймёт. А потому, чем проще, тем лучше

@varlesh

Я бы вот уже наверн плюнул на всё и вернул обратно...

смысл возвращать, уже ж закончили и поставили на рельсы.

вот придет какой-нибудь совсем зрелый парень и хрен что поймёт

что ж тут понимать, запустил один скрипт и все хорошо, так и напиши :)

смысл возвращать, уже ж закончили и поставили на рельсы.

Так я имел ввиду если бы не ты

что ж тут понимать, запустил один скрипт и все хорошо, так и напиши :)

:laughing: ага само все нарисует даже )))

спс :) закрываю пока тему

Was this page helpful?
0 / 5 - 0 ratings

Related issues

NusryNizam picture NusryNizam  ·  26Comments

Doaxan picture Doaxan  ·  23Comments

Chamrosh picture Chamrosh  ·  25Comments

jEsuSdA picture jEsuSdA  ·  48Comments

Ste74 picture Ste74  ·  22Comments