@@ -757,6 +757,20 @@ def parse_keywords(e):
757
757
e ['keywords' ] = ", " .join (keywords )
758
758
savebib (biblio , config )
759
759
760
+ elif o .add_files :
761
+ if len (entries ) != 1 :
762
+ raise PapersExit ("list only one entry to use --add-files" )
763
+ e = entries [0 ]
764
+ files = biblio .get_files (e )
765
+ for f in o .add_files :
766
+ if not os .path .exists (f ):
767
+ raise PapersExit (f"file { f } does not exist" )
768
+ files .extend (o .add_files )
769
+ biblio .set_files (e , files )
770
+ if o .rename :
771
+ biblio .rename_entry_files (e , copy = o .copy )
772
+ savebib (biblio , config )
773
+
760
774
elif o .edit :
761
775
otherentries = [e for e in biblio .db .entries if e not in entries ]
762
776
try :
@@ -1072,6 +1086,9 @@ def get_parser(config=None):
1072
1086
grp .add_argument ('--edit' , action = 'store_true' , help = 'interactive edit text file with entries, and re-insert them' )
1073
1087
grp .add_argument ('--fetch' , action = 'store_true' , help = 'fetch and fix metadata' )
1074
1088
grp .add_argument ('--add-keywords' , '--add-tag' , nargs = '+' , help = 'add keywords to the selected entries' )
1089
+ grp .add_argument ('--add-files' , nargs = '+' , help = 'add files to the selected entries (only one entry must be listed)' )
1090
+ grp .add_argument ('--rename' , action = 'store_true' , help = 'rename added file(s) into files folder. Used together with --add-files' )
1091
+ grp .add_argument ('--copy' , action = 'store_true' , help = 'copy added file(s) into files folder. Used together with --add-files --rename' )
1075
1092
1076
1093
# grp.add_argument('--merge-duplicates', action='store_true')
1077
1094
0 commit comments