На заказ — Нужен скрипт для копирования файлов по списку из файла
Так как существует такой блог, значит есть добровольцы, которые его создали. А это значит что есть шанс получить здесь помощь ;-)
Некоторым не нравится способ распространения программ KDE на Windows. Все дело в том, что в нем используется принцип репозиториев, как и в Linux. Однако многим было бы удобнее скачать установщик того же Amarok одним файлом и поставить только его в отдельную от KDE папку. Это все реализуемо, конечно, если делать через тот же установщик и просто установить в другую папку, но тут есть два аспекта - офф-лайн режим все еще в тестовой стадии, а зависимости тянутся целыми пакетами. А для создания установщика самое главное - это собрать все файлы, которые используются приложением и упаковать их. Для создания списка используемых файлов была взята утилита Process Monitor. Логи сохранены в файл и... собственно тут подходим к сути.
Нужен скрипт, который бы читал построчно файл, в котором несколько тысяч строк (множественные дубликаты), каждая строка - полный путь к папке или файлу. Скрипт должен копировать файл в указанную директорию с воссозданием иерархии файлов и папок.
Основные моменты, которые следует учесть:
Скриптописатель из меня не очень-то хороший, в жабере друзей таких же тоже немного, поэтому решил что здесь будет удобнее спросить. Если считаете тему неуместной - минусуйте. Готовый скрипт, наверное, лучше выкладывать в блоге Скрипты на bash (если скрипт действительно будет на bash), или кидать мне в личку/мыло/жабер (для потомков я его все равно к этому посту потом прилеплю).
Предыстория
Некоторым не нравится способ распространения программ KDE на Windows. Все дело в том, что в нем используется принцип репозиториев, как и в Linux. Однако многим было бы удобнее скачать установщик того же Amarok одним файлом и поставить только его в отдельную от KDE папку. Это все реализуемо, конечно, если делать через тот же установщик и просто установить в другую папку, но тут есть два аспекта - офф-лайн режим все еще в тестовой стадии, а зависимости тянутся целыми пакетами. А для создания установщика самое главное - это собрать все файлы, которые используются приложением и упаковать их. Для создания списка используемых файлов была взята утилита Process Monitor. Логи сохранены в файл и... собственно тут подходим к сути.
Суть
Нужен скрипт, который бы читал построчно файл, в котором несколько тысяч строк (множественные дубликаты), каждая строка - полный путь к папке или файлу. Скрипт должен копировать файл в указанную директорию с воссозданием иерархии файлов и папок.
Основные моменты, которые следует учесть:
- файлы повторяются, потому нужна проверка на существование файла/папки в пункте назначения
- файл из списка может отсутствовать - нужна проверка на существование в исходном виде
- файлы и папки должны повторять иерархию. Если в списке будет файл C:\KDE\share\icons\oxygen\16x16\actions\foo.png, то копироваться он должен в D:\CUSTOM_ROOT\share\icons\oxygen\16x16\actions\foo.png, а не просто D:\CUSTOM_ROOT\foo.png!
Не стоит заморачиваться с начальной частью полного пути файла в списке исходных файлов - в любом текстовом редакторе можно сделать замену того же C:\Program files\KDE на что-то вроде KDEROOT для более удобной работы скрипта - язык скрипт может быть любой - питон, яваскрипт, VBскрипт, Bash, Batch - все что угодно, я найду способ его запустить (Barinfuck не предлагать :P)
- такие параметры как корневая папка KDE или папка назначения могут быть, что называется, hardcoded, если вам так удобно, но все же приветствуется хотя бы какая-то возможность подстановки своих значений
Скриптописатель из меня не очень-то хороший, в жабере друзей таких же тоже немного, поэтому решил что здесь будет удобнее спросить. Если считаете тему неуместной - минусуйте. Готовый скрипт, наверное, лучше выкладывать в блоге Скрипты на bash (если скрипт действительно будет на bash), или кидать мне в личку/мыло/жабер (для потомков я его все равно к этому посту потом прилеплю).