easicmd is a python script written to facilitate/automate the use of irods for new users and add the autocompletion for some irods commands by using prompt_toolkit module.
Easicmd is a user-friendly Python script that provides a graphical interface for interacting with irods. It simplifies the usage of icommands by generating intuitive commands, making it ideal for new users or individuals who prefer a graphical interface over the command line. With Easicmd, you can effortlessly perform common tasks such as uploading and downloading data from irods, creating directories, managing metadata, searching for data by name or metadata, and retrieving essential information like directory size. Additionally, it streamlines the process of sharing data access with other users or groups. Enjoy a hassle-free irods experience with Easicmd!
**For Windows users** : you have to edit *gui_easicmd_windows_launcher.bat* and replace the placeholder *"C:\path\to\irods_**_windows\icommands"* with the path to your irods commands folder, this will add it to your path temporally (if your irods commands already in your path you should just remove the placeholder in the file ). You now have a clikable launcher for the graphical version of easicmd.
##This creates a fullscreen window. Pressing Escape resizes the window to '200x200+0+0' by default. If you move or resize the window, Escape toggles between the current geometry and the previous geometry.
metadata=LabelFrame(root,text="Work with METADATA",padx=30,pady=30)
metadata.pack(fill="both",expand="yes")
Label(metadata,text="Here you can work with the metadata associated with your data on irods such as add, delete,see metadate or edit the metadata dictionary ").pack()
Label(edit_frame,text="edit metadata autocompletion dictionary\n\ncreate : create a new attribut key \nthen you can add value to this new attribut\n\nediting : modify(add/remove) the \nvalues associated with an existing attribute\n\ndelete : remove an attribut AND all \nhis value from the dictionary").pack()
infodata=LabelFrame(root,text="INFO on data",padx=30,pady=30)
infodata.pack(fill="both",expand="yes")
Label(infodata,text="Here you can search for data present on irods from their name or associated metadata, get the size that a folder occupied on irods or allow to give/remove rights to other users on your data on irods").pack()
Label(addpath_frame,text="With this command you can edit path \nto the list of your irods collection\ne.g : not my home but a common \nfolder for a project\n(write in a file for later)\nCan also be use \nto update the \ncollection list when multiple \nusers use it").pack()
showwarning(title="missing dictionary",message=f"You're missing the attribute/values dictionary need for metadata autocompletion \nI'm creating it in {save_dict}\n It can take some time if you have many files\nI'm doing it only the first time you use the program\nPLEASE WAIT FOR THE SECOND POP UP")
showwarning(title="missing collection file",message=f"You're missing the irods collection file need for autocompletion \nI'm creating it in {pickles_path}\n It can take some time if you have many files.\nI'm doing it only the first time you use the program\nPLEASE WAIT FOR THE SECOND POP UP")
easicmd.get_irods_collection()
showwarning(title="missing collection file",message=f"It's done\nthanks for waiting")
showwarning(title="missing irods addin path file",message=f"You're missing the irods addin path file need for autocompletion \nI'm creating it in {pickles_additionals_path}.\nI'm doing it only the first time you use the program\nPLEASE WAIT FOR THE SECOND POP UP")
easicmd.get_irods_addin_path()
showwarning(title="missing irods addin path file",message=f"It's done\nthanks for waiting")
root.mainloop()
exceptTclError:
print("Oops!! It's seem you try to use the graphical interface on a computer without display if you're connected through SSH try re-connect using ssh -X")