Deploying via ipfs?
This commit is contained in:
		
							
								
								
									
										20
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								flake.nix
									
									
									
									
									
								
							@@ -13,7 +13,18 @@
 | 
				
			|||||||
  outputs = { self, nixpkgs, flake-utils, easy-hls }:
 | 
					  outputs = { self, nixpkgs, flake-utils, easy-hls }:
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    overlay = final: prev: {
 | 
					    overlay = final: prev: {
 | 
				
			||||||
      build-rauhala-info = final.haskellPackages.build-rauhala-info;
 | 
					      deploy-rauhala-info = with final; runCommand "deploy-rauhala-info.sh" { inherit bash ipfs; }
 | 
				
			||||||
 | 
					      ''
 | 
				
			||||||
 | 
					        mkdir -p $out/bin/
 | 
				
			||||||
 | 
					        substituteAll ${./support/deploy-rauhala-info.sh} $out/bin/deploy-rauhala-info.sh
 | 
				
			||||||
 | 
					        chmod u+x $out/bin/deploy-rauhala-info.sh
 | 
				
			||||||
 | 
					      '';
 | 
				
			||||||
 | 
					      build-rauhala-info = final.runCommand "site" { buildInputs = [final.makeWrapper]; }
 | 
				
			||||||
 | 
					      ''
 | 
				
			||||||
 | 
					        mkdir -p $out/bin/
 | 
				
			||||||
 | 
					        cp ${final.haskellPackages.build-rauhala-info}/bin/site $out/bin/
 | 
				
			||||||
 | 
					        wrapProgram $out/bin/site --prefix PATH : ${ final.lib.makeBinPath [ final.ipfs ] }
 | 
				
			||||||
 | 
					      '';
 | 
				
			||||||
      rauhala-info = final.callPackage ./rauhala.info { site = final.build-rauhala-info; };
 | 
					      rauhala-info = final.callPackage ./rauhala.info { site = final.build-rauhala-info; };
 | 
				
			||||||
      haskellPackages = prev.haskellPackages.override ( old: {
 | 
					      haskellPackages = prev.haskellPackages.override ( old: {
 | 
				
			||||||
        overrides = final.lib.composeExtensions ( old.overrides or (_: _: {})) (f: p: {
 | 
					        overrides = final.lib.composeExtensions ( old.overrides or (_: _: {})) (f: p: {
 | 
				
			||||||
@@ -30,11 +41,15 @@
 | 
				
			|||||||
      hls = easy-hls.defaultPackage.${system};
 | 
					      hls = easy-hls.defaultPackage.${system};
 | 
				
			||||||
    in
 | 
					    in
 | 
				
			||||||
    rec {
 | 
					    rec {
 | 
				
			||||||
      packages = { inherit (pkgs) build-rauhala-info rauhala-info; };
 | 
					      packages = { inherit (pkgs) build-rauhala-info rauhala-info deploy-rauhala-info; };
 | 
				
			||||||
      applications.build-rauhala-info = flake-utils.lib.mkApp {
 | 
					      applications.build-rauhala-info = flake-utils.lib.mkApp {
 | 
				
			||||||
        drv = packages.build-rauhala-info;
 | 
					        drv = packages.build-rauhala-info;
 | 
				
			||||||
        exePath = "/bin/site";
 | 
					        exePath = "/bin/site";
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 | 
					      applications.deploy-rauhala-info = flake-utils.lib.mkApp {
 | 
				
			||||||
 | 
					        drv = packages.deploy-rauhala-info;
 | 
				
			||||||
 | 
					        exePath = "/bin/deploy-rauhala-info.sh";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
      defaultPackage = packages.rauhala-info;
 | 
					      defaultPackage = packages.rauhala-info;
 | 
				
			||||||
      defaultApp = applications.build-rauhala-info;
 | 
					      defaultApp = applications.build-rauhala-info;
 | 
				
			||||||
      devShell = hp.shellFor {
 | 
					      devShell = hp.shellFor {
 | 
				
			||||||
@@ -45,6 +60,7 @@
 | 
				
			|||||||
          stylish-haskell
 | 
					          stylish-haskell
 | 
				
			||||||
          entr
 | 
					          entr
 | 
				
			||||||
          hls
 | 
					          hls
 | 
				
			||||||
 | 
					          ipfs
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										36
									
								
								support/deploy-rauhala-info.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										36
									
								
								support/deploy-rauhala-info.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					#!@bash@/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ ! -d _site ]; then
 | 
				
			||||||
 | 
					  echo "No _site detected"
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					API=/ip4/127.0.0.1/tcp/5001
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function upload() {
 | 
				
			||||||
 | 
					  echo "Uploading.."
 | 
				
			||||||
 | 
					  hash=$(ipfs --api $API add -r _site --pin=false -Q)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function pin() {
 | 
				
			||||||
 | 
					  echo "Pinning"
 | 
				
			||||||
 | 
					  ipfs --api $API pin remote rm --service=pinata --cid="$hash"
 | 
				
			||||||
 | 
					  ipfs --api $API pin remote add --service=pinata --name=rauhala.info "$hash"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function publish() {
 | 
				
			||||||
 | 
					  echo "Updating name"
 | 
				
			||||||
 | 
					  ipfs --api $API name publish --key=rauhala.info "$hash"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					upload
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pin &
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					publish &
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					wait
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user