Skip to content

Commit 9c862b4

Browse files
authored
Adjust to flat structure of membrane_demo (#1145)
* Adjust to flat structure of membrane_demo * Rename depo_dir to repo_path
1 parent fd2c532 commit 9c862b4

1 file changed

Lines changed: 14 additions & 21 deletions

File tree

lib/mix/tasks/membrane.demo.ex

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)