@@ -3,7 +3,7 @@ defmodule Mix.Tasks.Membrane.Demo do
33 @ moduledoc """
44 Download Membrane demos and examples. Requires `git` installed.
55
6- $ mix membrane.demo [-a] [-l] [-d <repo_dir >] [<demos> ...]
6+ $ mix membrane.demo [-a] [-l] [-d <repo_path >] [<demos> ...]
77
88 ## Options
99 * `-l, --list` - List all demos available and their brief descriptions.
@@ -24,8 +24,6 @@ defmodule Mix.Tasks.Membrane.Demo do
2424 d: :directory
2525 ]
2626
27- @ demos_search_list [ "." , "livebooks" ]
28-
2927 @ demos_readme_url "https://raw.githubusercontent.com/membraneframework/membrane_demo/refs/heads/master/README.md"
3028 @ demos_clone_url "https://github.com/membraneframework/membrane_demo.git"
3129
@@ -95,13 +93,13 @@ defmodule Mix.Tasks.Membrane.Demo do
9593 end
9694
9795 defp copy_all_demos ( target_dir ) do
98- repo_dir = Path . join ( target_dir , "membrane_demo" )
99- execute_git_command ( [ "clone" , "-q" , "--depth" , "1" , @ demos_clone_url , repo_dir ] )
96+ repo_path = Path . join ( target_dir , "membrane_demo" )
97+ execute_git_command ( [ "clone" , "-q" , "--depth" , "1" , @ demos_clone_url , repo_path ] )
10098 end
10199
102100 defp copy_specific_demos ( target_dir , demos_names ) do
103- repo_dir = Path . join ( target_dir , "membrane_demo" )
104- execute_git_command ( [ "clone" , "-q" , "--depth" , "1" , "-n" , @ demos_clone_url , repo_dir ] )
101+ repo_path = Path . join ( target_dir , "membrane_demo" )
102+ execute_git_command ( [ "clone" , "-q" , "--depth" , "1" , "-n" , @ demos_clone_url , repo_path ] )
105103
106104 Enum . each ( demos_names , fn demo_name ->
107105 case copy_demo ( target_dir , demo_name ) do
@@ -115,25 +113,20 @@ defmodule Mix.Tasks.Membrane.Demo do
115113 end
116114 end )
117115
118- File . rm_rf! ( repo_dir )
116+ File . rm_rf! ( repo_path )
119117 end
120118
121119 defp copy_demo ( target_dir , demo_name ) do
122- repo_dir = Path . join ( target_dir , "membrane_demo" )
123-
124- Enum . reduce_while ( @ demos_search_list , :error , fn demo_dir , _status ->
125- demo_path = Path . join ( [ repo_dir , demo_dir , demo_name ] )
126-
127- demo_name_path = if demo_dir == "." , do: demo_name , else: Path . join ( demo_dir , demo_name )
120+ repo_path = Path . join ( target_dir , "membrane_demo" )
121+ demo_path = Path . join ( repo_path , demo_name )
128122
129- execute_git_command ( [ "sparse-checkout" , "set" , demo_name_path ] , repo_dir )
130- execute_git_command ( [ "checkout" ] , repo_dir )
123+ execute_git_command ( [ "sparse-checkout" , "set" , demo_name ] , repo_path )
124+ execute_git_command ( [ "checkout" ] , repo_path )
131125
132- case File . cp_r ( demo_path , Path . join ( target_dir , Path . basename ( demo_path ) ) ) do
133- { :ok , _files } -> { :halt , :ok }
134- { :error , :enoent , _dir } -> { :cont , :error }
135- end
136- end )
126+ case File . cp_r ( demo_path , Path . join ( target_dir , demo_name ) ) do
127+ { :ok , _files } -> :ok
128+ { :error , :enoent , _dir } -> :error
129+ end
137130 end
138131
139132 defp execute_git_command ( argv , dir \\ "." ) do
0 commit comments