reverted directory identification
This commit is contained in:
65
main.py
65
main.py
@@ -22,7 +22,8 @@ GIT_DEFAULT_COMMANDS = [
|
|||||||
"show",
|
"show",
|
||||||
"checkout",
|
"checkout",
|
||||||
"clone",
|
"clone",
|
||||||
"reset"
|
"reset",
|
||||||
|
"revert"
|
||||||
]
|
]
|
||||||
|
|
||||||
def load_config():
|
def load_config():
|
||||||
@@ -440,31 +441,8 @@ def config_init(user_config, defaults_config, bin_dir):
|
|||||||
else:
|
else:
|
||||||
print("No new repositories found.")
|
print("No new repositories found.")
|
||||||
|
|
||||||
def get_selected_repos(show_all: bool, all_repos_list, repositories_base_dir, identifiers=None):
|
def get_selected_repos(show_all:bool,all_repos_list,identifiers=None):
|
||||||
"""
|
selected = all_repos_list if show_all or (not identifiers) else resolve_repos(identifiers, all_repos_list)
|
||||||
Select repositories based on provided identifiers or, if none are given,
|
|
||||||
use the repository that matches the current working directory (if any).
|
|
||||||
|
|
||||||
If --all is specified, return all repositories.
|
|
||||||
Otherwise, if identifiers are provided, resolve them.
|
|
||||||
If no identifier is provided, try to match the current directory with a repo;
|
|
||||||
if no match is found, default to all repositories.
|
|
||||||
"""
|
|
||||||
if show_all:
|
|
||||||
selected = all_repos_list
|
|
||||||
elif identifiers:
|
|
||||||
selected = resolve_repos(identifiers, all_repos_list)
|
|
||||||
else:
|
|
||||||
# No identifiers provided: check if the current directory belongs to one of the repos.
|
|
||||||
cwd = os.path.abspath(os.getcwd())
|
|
||||||
selected = []
|
|
||||||
for repo in all_repos_list:
|
|
||||||
repo_dir = os.path.abspath(get_repo_dir(repositories_base_dir, repo))
|
|
||||||
if cwd.startswith(repo_dir):
|
|
||||||
selected.append(repo)
|
|
||||||
if not selected:
|
|
||||||
# Fallback to all repos if current path is not inside any repo.
|
|
||||||
selected = all_repos_list
|
|
||||||
return filter_ignored(selected)
|
return filter_ignored(selected)
|
||||||
|
|
||||||
def list_repositories(all_repos, repositories_base_dir, bin_dir, search_filter="", status_filter=""):
|
def list_repositories(all_repos, repositories_base_dir, bin_dir, search_filter="", status_filter=""):
|
||||||
@@ -651,17 +629,22 @@ For detailed help on each command, use:
|
|||||||
# Proxies the default git commands
|
# Proxies the default git commands
|
||||||
for git_command in GIT_DEFAULT_COMMANDS:
|
for git_command in GIT_DEFAULT_COMMANDS:
|
||||||
add_identifier_arguments(
|
add_identifier_arguments(
|
||||||
subparsers.add_parser(git_command, help=f"Proxies 'git {git_command}' to one repository/repositories")
|
subparsers.add_parser(
|
||||||
|
git_command,
|
||||||
|
help=f"Proxies 'git {git_command}' to one repository/repositories",
|
||||||
|
description=f"Executes 'git {git_command}' for the identified repos.\nTo recieve more help execute 'git {git_command} --help'",
|
||||||
|
formatter_class=argparse.RawTextHelpFormatter
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
# Dispatch commands.
|
# Dispatch commands.
|
||||||
if args.command == "install":
|
if args.command == "install":
|
||||||
selected = selected = get_selected_repos(args.all, all_repos_list, repositories_base_dir, args.identifiers)
|
selected = get_selected_repos(args.all,all_repos_list,args.identifiers)
|
||||||
install_repos(selected, repositories_base_dir, BIN_DIR, all_repos_list, args.no_verification, preview=args.preview, quiet=args.quiet)
|
install_repos(selected,repositories_base_dir, BIN_DIR, all_repos_list, args.no_verification, preview=args.preview, quiet=args.quiet)
|
||||||
elif args.command in GIT_DEFAULT_COMMANDS:
|
elif args.command in GIT_DEFAULT_COMMANDS:
|
||||||
selected = get_selected_repos(args.all, all_repos_list, repositories_base_dir, args.identifiers)
|
selected = get_selected_repos(args.all,all_repos_list,args.identifiers)
|
||||||
if args.command == "clone":
|
if args.command == "clone":
|
||||||
clone_repos(selected, repositories_base_dir, all_repos_list, args.preview)
|
clone_repos(selected, repositories_base_dir, all_repos_list, args.preview)
|
||||||
else:
|
else:
|
||||||
@@ -669,19 +652,19 @@ For detailed help on each command, use:
|
|||||||
elif args.command == "list":
|
elif args.command == "list":
|
||||||
list_repositories(all_repos_list, repositories_base_dir, BIN_DIR, search_filter=args.search, status_filter=args.status)
|
list_repositories(all_repos_list, repositories_base_dir, BIN_DIR, search_filter=args.search, status_filter=args.status)
|
||||||
elif args.command == "deinstall":
|
elif args.command == "deinstall":
|
||||||
selected = selected = get_selected_repos(args.all, all_repos_list, repositories_base_dir, args.identifiers)
|
selected = get_selected_repos(args.all,all_repos_list,args.identifiers)
|
||||||
deinstall_repos(selected, repositories_base_dir, BIN_DIR, all_repos_list, preview=args.preview)
|
deinstall_repos(selected,repositories_base_dir, BIN_DIR, all_repos_list, preview=args.preview)
|
||||||
elif args.command == "delete":
|
elif args.command == "delete":
|
||||||
selected = selected = get_selected_repos(args.all, all_repos_list, repositories_base_dir, args.identifiers)
|
selected = get_selected_repos(args.all,all_repos_list,args.identifiers)
|
||||||
delete_repos(selected, repositories_base_dir, all_repos_list, preview=args.preview)
|
delete_repos(selected,repositories_base_dir, all_repos_list, preview=args.preview)
|
||||||
elif args.command == "update":
|
elif args.command == "update":
|
||||||
selected = selected = get_selected_repos(args.all, all_repos_list, repositories_base_dir, args.identifiers)
|
selected = get_selected_repos(args.all,all_repos_list,args.identifiers)
|
||||||
update_repos(selected, repositories_base_dir, BIN_DIR, all_repos_list, args.no_verification, system_update=args.system, preview=args.preview, quiet=args.quiet)
|
update_repos(selected,repositories_base_dir, BIN_DIR, all_repos_list, args.no_verification, system_update=args.system, preview=args.preview, quiet=args.quiet)
|
||||||
elif args.command == "status":
|
elif args.command == "status":
|
||||||
selected = selected = get_selected_repos(args.all, all_repos_list, repositories_base_dir, args.identifiers)
|
selected = get_selected_repos(args.all,all_repos_list,args.identifiers)
|
||||||
status_repos(selected, repositories_base_dir, all_repos_list, args.extra_args, list_only=args.list, system_status=args.system, preview=args.preview)
|
status_repos(selected,repositories_base_dir, all_repos_list, args.extra_args, list_only=args.list, system_status=args.system, preview=args.preview)
|
||||||
elif args.command == "explor":
|
elif args.command == "explor":
|
||||||
selected = get_selected_repos(args.all, all_repos_list, repositories_base_dir, args.identifiers)
|
selected = get_selected_repos(args.all, all_repos_list, args.identifiers)
|
||||||
for repo in selected:
|
for repo in selected:
|
||||||
repo_dir = get_repo_dir(repositories_base_dir, repo)
|
repo_dir = get_repo_dir(repositories_base_dir, repo)
|
||||||
run_command(f"nautilus {repo_dir}")
|
run_command(f"nautilus {repo_dir}")
|
||||||
@@ -717,13 +700,13 @@ For detailed help on each command, use:
|
|||||||
|
|
||||||
|
|
||||||
elif args.command == "terminal":
|
elif args.command == "terminal":
|
||||||
selected = get_selected_repos(args.all, all_repos_list, repositories_base_dir, args.identifiers)
|
selected = get_selected_repos(args.all, all_repos_list, args.identifiers)
|
||||||
for repo in selected:
|
for repo in selected:
|
||||||
repo_dir = get_repo_dir(repositories_base_dir, repo)
|
repo_dir = get_repo_dir(repositories_base_dir, repo)
|
||||||
run_command(f'gnome-terminal --tab --working-directory="{repo_dir}"')
|
run_command(f'gnome-terminal --tab --working-directory="{repo_dir}"')
|
||||||
|
|
||||||
elif args.command == "path":
|
elif args.command == "path":
|
||||||
selected = selected = get_selected_repos(args.all, all_repos_list, repositories_base_dir, args.identifiers)
|
selected = get_selected_repos(args.all,all_repos_list,args.identifiers)
|
||||||
paths = [
|
paths = [
|
||||||
get_repo_dir(repositories_base_dir,repo)
|
get_repo_dir(repositories_base_dir,repo)
|
||||||
for repo in selected
|
for repo in selected
|
||||||
|
|||||||
Reference in New Issue
Block a user