Potrebbe essere utile per creare un pacchetto di file.
Ecco come fare:
- chiudere eventualmente WinCvs se aperto;
- creare il file AddFileToDirTest.py nella directory ".../wincvs/Macros";
- copiare il codice qui sotto;
- modificare eventualmente i path o parametri all'interno della macro;
- riavviare WinCvs (ricordarsi di avere python installato sul pc e aver fatto riferimento nelle impostazioni sulla dll di python);
- selezionare i file da copiare;
- selezionare la macro AddFileToDirTest.
# start copy here from cvsgui.Macro import * from cvsgui.CvsEntry import * from cvsgui.ColorConsole import * import cvsgui.App, os.path, os import string import copy import shutil class AddFileToDirTest(Macro): def __init__(self): Macro.__init__(self, "AddFileToDirTest", MACRO_SELECTION, 0, "Add File To Dir Test") def CreaDirectory(self,dirFile): if not os.path.isdir(dirFile): os.makedirs(dirFile) print "- directory created: " + dirFile def OnCmdUI(self, cmdui): sel = cvsgui.App.GetSelection() isOnlyExistingFiles = len(sel) > 0 for s in sel: if not s.IsFile() or s.IsMissing(): isOnlyExistingFiles = 0 break cmdui.Enable(isOnlyExistingFiles) if isOnlyExistingFiles: cmdui.SetText("Add File selected to Directory") else: cmdui.SetText("Click on file to select") def Run(self): print "* Add file in progress... *" #+--------- start set here--------+ #example directory root: c:\temp\test pathComuneDoveCopiareIFile ="c:\\" + "temp" + "\\" nomeDirectoryComuneATuttiIProgetti="test" #insert the name into common directory #+--------- stop set here --------+ sel = cvsgui.App.GetSelection() paths = [] for s in sel: paths.append(s.GetFullName()) nomeFile=os.path.split(s.GetFullName()) dir = os.path.dirname(os.path.commonprefix(paths)) print "- directory selected: ", dir where = dir.find(nomeDirectoryComuneATuttiIProgetti) dirReplace = dir[(where):] dirDaCreare= pathComuneDoveCopiareIFile + dirReplace self.CreaDirectory(dirDaCreare) for s in sel: paths.append(s.GetFullName()) nomeFile=os.path.split(s.GetFullName()) pathDoveCopiare = dirDaCreare + "\\" + nomeFile[1] print "- copy file in:" + pathDoveCopiare shutil.copyfile(s.GetFullName(), pathDoveCopiare) print "-- filename copied: " + nomeFile[1] print "* End elaboration *" AddFileToDirTest() # end copy hereUn esempio in questa figura: