### Summary

When I try to use the --become-password-file flag in the command 
```
> ansible-pull -i "$(hostname)," -U {repo_link} local.yml
```
I get the following error:
```
>   module_stderr: |-
    sudo: a password is required
  module_stdout: ''
  msg: |-
    MODULE FAILURE
    See stdout/stderr for the exact error
  rc: 1
```
when attempting to use the playbook:
```
- hosts: all
  tasks:

    - shell:
        cmd: uptime
      register: uptime_res
      become: true

    - debug:
        var: uptime_res
```
I believe this is a bug because the [pull.py](https://github.com/ansible/ansible/blob/ad79c1e0d032eb5dda216055ffc393043de4b380/lib/ansible/cli/pull.py#L278) does not seem to utilize the [ask_passwords](https://github.com/ansible/ansible/blob/650befed37eadcaea735673638d5475fa957ca7e/lib/ansible/cli/__init__.py#L328) function, nor build the --become-password-file into the [cmd](https://github.com/ansible/ansible/blob/ad79c1e0d032eb5dda216055ffc393043de4b380/lib/ansible/cli/pull.py#L278) variable.

### Issue Type

Bug Report

### Component Name

pull.py

### Ansible Version

```console
$ ansible --version
aansible --version
ansible [core 2.12.6]
  config file = /Users/{user}/ansible.cfg
  configured module search path = ['/Users/{user}/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible
  ansible collection location = /Users/{user}/.ansible/collections:/usr/share/ansible/collections
  executable location = /Library/Frameworks/Python.framework/Versions/3.8/bin/ansible
  python version = 3.8.0 (v3.8.0:fa919fdf25, Oct 14 2019, 10:23:27) [Clang 6.0 (clang-600.0.57)]
  jinja version = 3.1.2
  libyaml = True
```


### Configuration

```console
DEFAULT_FORKS(/Users/{user}/ansible.cfg) = 100
DEFAULT_LOAD_CALLBACK_PLUGINS(/Users/{user}/ansible.cfg) = True
DEFAULT_STDOUT_CALLBACK(/Users/{user}/ansible.cfg) = yaml
HOST_KEY_CHECKING(/Users/{user}/ansible.cfg) = False

BECOME:
======

CACHE:
=====

CALLBACK:
========
```


### OS / Environment

macOS Monterey 12.5.1

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
- hosts: all

  tasks:

    - shell:
        cmd: uptime
      register: uptime_res
      become: true

    - debug:
        var: uptime_res
```
run the command: ```ansible-pull -i "$(hostname)," -U {repo_link} local.yml```

### Expected Results

I expect a successful playbook with an output of the current uptime.

### Actual Results

```console
TASK [shell] *******************************************************************
fatal: [{HOSTNAME}]: FAILED! => changed=false
  module_stderr: |-
    sudo: a password is required
  module_stdout: ''
  msg: |-
    MODULE FAILURE
    See stdout/stderr for the exact error
  rc: 1
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
self.parser.add_argument('-s', '--sleep', dest='sleep', default=None,
                                 help='sleep for random interval (between 0 and n number of seconds) before starting. '
                                      'This is a useful way to disperse git requests')
        self.parser.add_argument('-f', '--force', dest='force', default=False, action='store_true',
                                 help='run the playbook even if the repository could not be updated')
        self.parser.add_argument('-d', '--directory', dest='dest', default=None,
                                 help='absolute path of repository checkout directory (relative paths are not supported)')
        self.parser.add_argument('-U', '--url', dest='url', default=None, help='URL of the playbook repository')
        self.parser.add_argument('--full', dest='fullclone', action='store_true', help='Do a full clone, instead of a shallow one.')
        self.parser.add_argument('-C', '--checkout', dest='checkout',
                                 help='branch/tag/commit to checkout. Defaults to behavior of repository module.')
        self.parser.add_argument('--accept-host-key', default=False, dest='accept_host_key', action='store_true',
                                 help='adds the hostkey for the repo url if not already added')
        self.parser.add_argument('-m', '--module-name', dest='module_name', default=self.DEFAULT_REPO_TYPE,
                                 help='Repository module name, which ansible will use to check out the repo. Choices are %s. Default is %s.'
                                      % (self.REPO_CHOICES, self.DEFAULT_REPO_TYPE))
        self.parser.add_argument('--verify-commit', dest='verify', default=False, action='store_true',
                                 help='verify GPG signature of checked out commit, if it fails abort running the playbook. '
                                      'This needs the corresponding VCS module to support such an operation')
        self.parser.add_argument('--clean', dest='clean', default=False, action='store_true',
                                 help='modified files in the working repository will be discarded')
        self.parser.add_argument('--track-subs', dest='tracksubs', default=False, action='store_true',
                                 help='submodules will track the latest changes. This is equivalent to specifying the --remote flag to git submodule update')
        
        
        self.parser.add_argument("--check", default=False, dest='check', action='store_true',
                                 help="don't make any changes; instead, try to predict some of the changes that may occur")
        self.parser.add_argument("--diff", default=C.DIFF_ALWAYS, dest='diff', action='store_true',
                                 help="when changing (small) files and templates, show the differences in those files; works great with --check")
    def post_process_args(self, options):