diff --git a/tasks/helpers/cargo_build.yml b/tasks/helpers/cargo_build.yml index 04b0155..c51e610 100644 --- a/tasks/helpers/cargo_build.yml +++ b/tasks/helpers/cargo_build.yml @@ -9,30 +9,24 @@ ## force_git: _bool_ optional, default true. Force clone, overwriting existing dir ## recursive: _bool_ optional, default true. Do a recursive clone ## version: _string_ optional, default 'latest'. Version to checkout and build -## locked: _bool_ optional, default 'false' ## build_flags: _list[str]_ optional. If set, will append these to the build command --- -- name: Cargo source install helper {{ pkg.name | default(omit) }} +- name: Cargo source install helper block: - name: Fetch git repo vars: path: "{{ pkg.source_dir }}" - repo: "{{ pkg.repo }}" + repo: "{{ pkg.git.repo }}" depth: "{{ pkg.depth | default(1) }}" force: "{{ pkg.force_git | default(true) }}" recursive: "{{ pkg.recursive | default(true) }}" - version: "{{ pkg.version | default(omit) }}" + version: "{{ pkg.git.version | default(omit) }}" ansible.builtin.include_tasks: helpers/git.yml - name: Build cargo release - become: "{{ install_become }}" - become_user: "{{ install_become_user }}" - community.general.cargo: - directory: "{{ pkg.source_dir }}" - path: "{{ install_prefix }}" - name: "{{ pkg.name }}" - version: "{{ pkg.version }}" - locked: "{{ pkg.locked | default(false) }}" + ansible.builtin.command: + chdir: "{{ pkg.source_dir }}" + argv: "{{ ['cargo', 'build'] + pkg.build_flags }}" - name: Clean existing install vars: @@ -41,9 +35,30 @@ - name: Install cargo release block: - - name: Create missing directories - vars: - do_become: "{{ install_become }}" - do_become_user: "{{ install_become_user | default(omit) }}" - source_dir: "{{ pkg.source_dir }}" - ansible.builtin.include_tasks: helpers/install.yml + # - name: Install files + # vars: + # source_dir: "{{ pkg.source_dir }}" + # pkg: "{{ pkg }}" + # ansible.builtin.include_tasks: helpers/install.yml + + - name: Create directories + become: "{{ install_become }}" + become_user: "{{ install_become_user | default(omit) }}" + loop: "{{ pkg.files }}" + loop_control: + loop_var: file + ansible.builtin.file: + state: directory + mode: '0755' + path: "{{ [install_prefix, file.to] | path_join | dirname }}" + + - name: Copy installable files + become: "{{ install_become }}" + become_user: "{{ install_become_user }}" + loop: "{{ pkg.files }}" + loop_control: + loop_var: file + ansible.builtin.copy: + dest: "{{ install_prefix }}/{{ file.to }}" + mode: "{{ file.mode | default('0644') }}" + src: "{{ pkg.source_dir }}/{{ file.from }}" diff --git a/tasks/helpers/install.yml b/tasks/helpers/install.yml index 07cab90..a701cb9 100644 --- a/tasks/helpers/install.yml +++ b/tasks/helpers/install.yml @@ -20,7 +20,7 @@ - name: Create directories become: "{{ do_become }}" become_user: "{{ do_become_user | default(omit) }}" - loop: "{{ pkg_clean }}" + loop: "{{ pkg.files }}" loop_control: loop_var: dir when: @@ -33,8 +33,10 @@ - name: Copy installable files become: "{{ install_become }}" become_user: "{{ install_become_user }}" - loop: "{{ pkg_clean }}" + loop: "{{ pkg.files }}" + loop_control: + loop_var: file ansible.builtin.copy: dest: "{{ install_prefix }}/{{ file.to }}" mode: "{{ file.mode | default('0644') }}" - src: "{{ file.builddir | default(omit) }}/" + src: "{{ source_dir }}/{{ file.from }}" diff --git a/tasks/pkgs/alacritty.yml b/tasks/pkgs/alacritty.yml index 7c034e6..fca881b 100644 --- a/tasks/pkgs/alacritty.yml +++ b/tasks/pkgs/alacritty.yml @@ -107,8 +107,8 @@ alacritty_src_install: build_flags: "{{ alacritty.build_flags }}" source_dir: "{{ d_cache.path }}/alacritty" - repo: "{{ alacritty.git.repo }}" - version: "{{ alacritty.git.version }}" + git: "{{ alacritty.git }}" + version: "{{ alacritty.version }}" files: "{{ alacritty.install_files }}" name: alacritty alacritty_bds: "{{ alacritty.bds[os_family] }}" diff --git a/tasks/pkgs/yazi.yml b/tasks/pkgs/yazi.yml index 9b8a6d3..091ed6a 100644 --- a/tasks/pkgs/yazi.yml +++ b/tasks/pkgs/yazi.yml @@ -5,9 +5,10 @@ yazi: methods: - source - version: v26.1.22 + version: 26.1.22 git: repo: https://github.com/sxyazi/yazi.git + version: v26.1.22 pkgname: yazi pkg_depends: - fd @@ -53,20 +54,23 @@ - name: Configure yazi cargo build ansible.builtin.set_fact: yazi_src_install: - cargo_build_flags: - - --release --locked + build_flags: + - --release + - --locked name: "{{ yazi.pkgname }}" - repo: "{{ yazi.git.repo }}" - source_dir: "{{ path_source }}/{{ yazi.pkgname }}" + git: "{{ yazi.git }}" + source_dir: "{{ d_cache.path }}/{{ yazi.pkgname }}" version: "{{ yazi.version }}" bin_output: "target/release/yazi" bin_name: "yazi" install_prefix: "{{ install_prefix }}" - install_files: - target/release/ya: bin/ya - files_list: - - bin/yazi - - bin/ya + files: + - to: bin/yazi + from: target/release/yazi + mode: '0755' + - to: bin/ya + from: target/release/ya + mode: '0755' - name: Append yazi-fm pkg_deps loop: "{{ yazi.pkg_depends }}"