Skip to content

Instantly share code, notes, and snippets.

@yrashk
Created August 30, 2011 00:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yrashk/58366bd0a757c8c9c2b1 to your computer and use it in GitHub Desktop.
Save yrashk/58366bd0a757c8c9c2b1 to your computer and use it in GitHub Desktop.
sort_releases(Root) ->
RelDir = filename:join([Root, "releases"]),
[ begin
RelFilename = filename:join([RelDir, Release]),
{ok, [{release, {Name, Version}, {erts, _}, _}]} = file:consult(RelFilename),
case filename:dirname(Release) =:= Version of
true ->
ignore;
false -> %% move
ok = filelib:ensure_dir(filename:join([RelDir, Version]) ++ "/"), %% make sure appropriate directory exists
RelFiles = filelib:wildcard(Name ++ ".*", filename:join([RelDir, filename:dirname(Release)])), %% release files
[ file:rename(filename:join([RelDir, filename:dirname(Release), RelFile]),
filename:join([RelDir, Version, RelFile])) || RelFile <- RelFiles ]
end
end || Release <- filelib:wildcard("*/*.rel", RelDir) ],
ok.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment