#include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef WEBKIT_FOUND #include #endif #include "ubl-strings.h" #define _(String) gettext(String) #define glade_path "/com/ublinux/ui/ubl-settings-repomanager.glade" #define glade_path_repo_add "/com/ublinux/ui/ubl-settings-repomanager-add.glade" #define glade_path_storage_config "/com/ublinux/ui/ubl-settings-repomanager-configuration.glade" #define glade_path_repo_block "/com/ublinux/ui/ubl-settings-repomanager-repo-block.glade" #define glade_path_filechooser "/com/ublinux/ui/ubl-settings-repomanager-filechooser.glade" #define glade_path_key "/com/ublinux/ui/ubl-settings-repomanager-key.glade" #define glade_path_sign "/com/ublinux/ui/ubl-settings-repomanager-sign.glade" #define banner_path "/com/ublinux/images/ubl-settings-repomanager-banner.png" #define CssPath "/com/ublinux/css/ubl-settings-repomanager.css" #define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL) #define icon_path "com.ublinux.ubl-settings-repomanager" #define folder_no_edits "com.ublinux.libublsettingsui-gtk3.folder-symbolic" #define document_no_edits "com.ublinux.libublsettingsui-gtk3.key-symbolic" #define document_deleted "com.ublinux.ubl-settings-repomanager.key-red-symbolic" #define document_added "com.ublinux.ubl-settings-repomanager.key-green-symbolic" #define add_icon_name "com.ublinux.libublsettingsui-gtk3.increase-symbolic" #define move_icon "com.ublinux.libublsettingsui-gtk3.arrows-left-right-symbolic" #define remove_icon "com.ublinux.libublsettingsui-gtk3.trash-symbolic" #define LocalePath "/usr/share/locale" #define LocaleName "ubl-settings-repomanager" #define lib_key_icon_name "com.ublinux.libublsettingsui-gtk3.key-symbolic" #define key_icon_name "com.ublinux.ubl-settings-repomanager.document-sign-symbolic" #define key_error_icon_name "com.ublinux.ubl-settings-repomanager.document-sign-error-symbolic" #define package_signature_icon_name "com.ublinux.ubl-settings-repomanager.chain-symbolic" #define package_signature_error_icon_name "com.ublinux.ubl-settings-repomanager.chain-error-symbolic" #define warning_icon_name "com.ublinux.ubl-settings-repomanager.warning-symbolic" #define package_linked_icon "com.ublinux.ubl-settings-repomanager.package-linked-symbolic" #define package_unlinked_icon "com.ublinux.ubl-settings-repomanager.package-unlinked-symbolic" #define key_encription_path "/usr/share/ubl-settings-repomanager/csv/crypt-key.csv" typedef char* string; #define create_storage_command(path,name) yon_char_unite("repo-manager add -r '",name,"' -d '", path,"'",NULL) #define add_packages_command(path,arch,name,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' ",packages_path,NULL) #define add_packages_sign_command(path,arch,name,repo_sign,pack_sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -S ",repo_sign," -s ",pack_sign," ",packages_path,NULL) #define add_packages_package_sign_command(path,arch,name,sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -s '",sign,"' ",packages_path,NULL) #define add_packages_repo_sign_command(path,arch,name,sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -S '",sign,"' ",packages_path,NULL) #define remove_packages_command(path,arch,name,packages_path,sign) yon_char_unite("repo-manager remove -r '",name,"' -a '",arch,"' -d '", path,"' ",sign?"-S ":"",sign?sign:"",sign?" ":"",packages_path,NULL) #define repo_sign_command(storage_path, repo, sign) yon_char_unite("repo-manager add -f -r '",repo,"' -d '", storage_path, "' -S ", sign,NULL) #define yon_move_packages_command(storage,arch, source_repo, target_repo, packages,sign) yon_char_unite("repo-manager move -d '",storage,"' -a '",arch,"' -R '",source_repo,"' -r '",target_repo,"' ",sign?"-S ":"",sign?sign:"",sign?" ":"", packages,NULL) #define yon_delete_packages_command(storage,arch, target_repo, packages) yon_char_unite("repo-manager remove -d '",storage,"' -a '",arch,"' -r '",target_repo,"' ", packages,NULL) #define yon_delete_packages_sign_command(storage,arch, target_repo,sign, packages) yon_char_unite("repo-manager remove -d '",storage,"' -a '",arch,"' -r '",target_repo,"' -S '",sign,"' ", packages,NULL) #define ubl_settings_update_command "ubl-settings-update" #define yon_get_packages_command(path,repo,arch) yon_char_unite("repo-manager show --quiet -d '",path,"' -a ",arch," -r '",repo,"' | sed -E 's/(\\S+)(\\s+)(\\S+)/\\1;\\3/g'",NULL) #define yon_repo_get_signature(path, repo) yon_char_unite("repo-manager verify --quiet -d ",path," -r '",repo,"' . 2>&1 | cut -d: -f2 |sed -E 's/ *//g'",NULL) #define yon_repo_get_signature_status(path,repo,arch, package) yon_char_unite("repo-manager verify --quiet -d ",path," -r '",repo,"' ",package,NULL) #define yon_repo_get_signature_status_arch(path,repo,arch) yon_char_unite("repo-manager verify --quiet -d ",path," -r '",repo,"' .",NULL) #define yon_repo_get_signature_status_packages(path,repo,arch) yon_char_unite("repo-manager verify --quiet -d ",path," -r '",repo,"'",NULL) #define yon_get_package_name_from_filename(path) yon_char_unite("[[ '",path,"' =~ (.*/)*(.*)-[^-]+-[^-]+-[^-]+\\.pkg\\.tar\\.[^.-]+ ]] && echo ${BASH_REMATCH[2]}",NULL) #define yon_get_filename_from_package_name(target) yon_char_unite("find ${PATH} -maxdepth 1 -regextype egrep -regex \".*/",target,"-[^-]+-[^-]+-[^-]+\\.pkg\\.tar\\.[^-.]*\"",NULL) #define get_gpg_keys_command "gpg --list-keys | awk ' \ /^pub/ { \ key=\"\"; \ getline; \ if (match($0, /[0-9A-F]{8,}/)) \ key=substr($0, RSTART, RLENGTH); \ } \ /^uid/ { \ $1=\"\"; sub(/^ +/, \"\"); \ if (match($0, /<[^>]+>/)) { \ email = substr($0, RSTART+1, RLENGTH-2); \ print $0 \";\" email; \ } else { \ print $0 \";\" key; \ } \ }'" #define yon_sign_package(storage,repo,arch,target,sign) yon_char_unite("repo-manager add -r ''",repo,"'' -a '",arch,"' -d '", storage,"' -s '",sign,"' ",target,NULL) #define yon_sign_repo(storage,repo,sign) yon_char_unite("repo-manager add -f -r ''",repo,"'' -d '", storage,"' --sign-repo='",sign,"'",NULL) #define get_package_info_command(filename) yon_char_unite("pacman -Q --info --file '",filename,"' 2>/dev/null|sed -e 's/ */ /g' -e 's/ : /: /g' -e 's/\\n/ /g' -e 's/^ /\\t/g'",NULL) #define get_storage_info_label(path, repos, archs) yon_char_unite("",STORAGE_PATH_LABEL,": ", path,"\n\n", REPOS_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,NULL) #define get_repo_info_label(repos, archs,sign) yon_char_unite("",REPO_NAME_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,"\n\n",sign,NULL) #define get_arch_info_label(repos, archs) yon_char_unite("",REPO_NAME_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,NULL) #define yon_generate_key_command(type,name,email,strength,comment,expire,password) yon_char_unite("gpg --batch --gen-key <